Vue en pratique : développement de composants par glisser-déposer
Vue en action : développement de composants par glisser-déposer
À mesure que les applications Web sont de plus en plus utilisées, les exigences des utilisateurs en matière d'expérience utilisateur sont de plus en plus élevées. La fonction glisser-déposer est devenue une fonction très courante dans les applications Web, comme le tri par glisser-déposer, le redimensionnement par glisser-déposer, etc. Cet article explique comment utiliser Vue pour implémenter un composant glisser-déposer.
L'implémentation de composants glisser-déposer implique des points de connaissance tels que les événements de souris, les animations CSS et les opérations DOM, et Vue, en tant que framework JavaScript progressif, peut bien nous aider à remplir cette fonction. Le processus de mise en œuvre spécifique sera présenté ci-dessous à travers un exemple.
Tout d'abord, nous devons créer un composant Vue de base, comprenant la zone de glisser et l'élément glisser :
<template> <div class="drag-box"> <div class="drag-handle" @mousedown="handleMouseDown">拖拽元素</div> </div> </template>
Ici, nous utilisons l'événement @mousedown
pour écouter l'événement de pression de la souris et le lier A < La méthode code>handleMouseDown est créée pour gérer cet événement. Dans cette méthode, nous devons calculer le décalage de la souris et l'enregistrer dans l'instance du composant. En même temps, nous définissons le composant actuel à faire glisser et définissons le style CSS pour ajuster sa position. @mousedown
事件来监听鼠标按下事件,并且绑定了一个handleMouseDown
方法来处理这个事件。在此方法中,我们需要计算出鼠标的偏移量,并将其保存在组件实例中。同时,我们将当前组件设置为被拖拽状态,并且设置CSS样式来调整其位置。
<script> export default { data() { return { isDragging: false, dragStartX: 0, dragStartY: 0, dragOffsetX: 0, dragOffsetY: 0, }; }, methods: { handleMouseDown(event) { this.isDragging = true; const rect = event.target.getBoundingClientRect(); this.dragStartX = event.clientX; this.dragStartY = event.clientY; this.dragOffsetX = event.clientX - rect.left; this.dragOffsetY = event.clientY - rect.top; document.addEventListener("mousemove", this.handleMouseMove); document.addEventListener("mouseup", this.handleMouseUp); }, handleMouseMove(event) { if (this.isDragging) { const box = this.$el.getBoundingClientRect(); const x = event.clientX - this.dragStartX; const y = event.clientY - this.dragStartY; this.$el.style.transform = `translate(${x}px, ${y}px)`; } }, handleMouseUp(event) { this.isDragging = false; this.$el.style.transition = "all 0.3s ease-out"; this.$el.style.transform = `translate(0, 0)`; setTimeout(() => { this.$el.style.transition = ""; }, 300); document.removeEventListener("mousemove", this.handleMouseMove); document.removeEventListener("mouseup", this.handleMouseUp); }, }, }; </script>
在这个例子中,我们使用了document.addEventListener
方法来监听鼠标移动和鼠标松开事件。在鼠标移动的事件处理方法中,我们获取鼠标的位置并计算出偏移量。然后,我们使用CSS的transform
<template> <div class="drag-demo"> <DragBox class="drag-box"> <div class="drag-handle" @mousedown="handleMouseDown"> 拖拽元素 </div> </DragBox> </div> </template> <script> import DragBox from "./DragBox.vue"; export default { components: { DragBox, }, methods: { handleMouseDown(event) { //... }, }, }; </script> <style> .drag-box { width: 300px; height: 300px; border: 1px solid gray; position: relative; } .drag-handle { width: 100px; height: 50px; background-color: red; color: white; text-align: center; line-height: 50px; cursor: move; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } </style>
document.addEventListener
pour écouter les événements de mouvement et de relâchement de la souris. Dans la méthode de gestion des événements de mouvement de la souris, nous obtenons la position de la souris et calculons le décalage. Ensuite, nous utilisons la propriété CSS transform
pour ajuster la position de l'élément glissé. Dans l'événement de relâchement de la souris, nous annulons la surveillance des événements de mouvement et de relâchement de la souris, et utilisons l'animation CSS pour revenir à la position d'origine. Enfin, nous pouvons introduire ce composant glisser dans le composant parent et définir ses propriétés et styles selon nos besoins. Vous trouverez ci-dessous un exemple de code qui permet de limiter les éléments déplacés à la zone de déplacement. rrreee
Dans cet exemple de code, nous plaçons l'élément glisser dans la zone de déplacement et définissons quelques styles de base. Dans la méthode de gestion des événements, nous pouvons gérer la position de l'élément déplacé selon les besoins et restreindre son mouvement dans la zone de déplacement. RésuméLa fonction glisser-déposer est déjà très courante dans les applications Web, et Vue, en tant que framework JavaScript populaire, peut bien prendre en charge cette fonction. Dans cet article, nous expliquons comment utiliser Vue pour implémenter un simple composant glisser-déposer et expliquons le processus d'implémentation à travers des exemples de code spécifiques. Grâce à cet exemple, nous pouvons avoir une compréhension plus approfondie de la liaison de données, de la composantisation, de la gestion des événements et d'autres fonctionnalités de Vue. Dans le développement réel, nous pouvons ajouter plus de fonctions et d'optimisations selon les besoins, comme l'ajout d'effets d'animation, la limitation de la plage de traînée, etc. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Il existe trois méthodes courantes pour que Vue.js traverse les tableaux et les objets: la directive V-FOR est utilisée pour traverser chaque élément et les modèles de rendu; La directive V-Bind peut être utilisée avec V-FOR pour définir dynamiquement les valeurs d'attribut pour chaque élément; et la méthode .map peut convertir les éléments du tableau en nouveaux tableaux.

Il existe deux façons de sauter des éléments div dans Vue: Utilisez le routeur Vue et ajoutez le composant routeur-link. Ajoutez l'écouteur de l'événement @Click et appelez ceci. $ Router.push () pour sauter.
