Vue dragdrop 是一個 Vue.js 的拖拽插件,用于實現拖拽功能,通常用于項目中的條目排序、移動和重新排列數據。Vue dragdrop 可以幫助開發人員快速和輕松地為應用程序實現拖拽效果,因為它提供了一組組件,可以快速使用。
安裝 Vue dragdrop 示例代碼如下:
npm i @restive/vue-drag-drop --save
首先,在 main.js 中導入 Vue dragdrop 和其 CSS 文件,代碼如下:
import Vue from 'vue' import App from './App.vue' import VueDragDrop from '@restive/vue-drag-drop' import '@restive/vue-drag-drop/dist/vue-drag-drop.min.css' Vue.use(VueDragDrop) new Vue({ render: h =>h(App), }).$mount('#app')
接下來,我們可以創建一個 draggable 組件,代碼如下:
<template> <div v-draggable="dragOptions"> <div class="card" :style="style" @mouseover="showHandle=true" @mouseleave="showHandle=false"> <div v-if="showHandle" class="handle"></div> <p class="title">{{ title }}</p> <p class="description">{{ description }}</p> </div> </div> </template> <script> export default { props: { title: String, description: String, id: String }, data() { return { showHandle: false, dragOptions: { handler: '.handle' } } }, computed: { style() { return { transform: `translate(${this.$attrs.position.x}px, ${this.$attrs.position.y}px)` } } } } </script>
在 dragOptions 中,我們可以指定一個 DraggableOption 對象,可以設置 handler 選擇器和其它選項來配置可拖動元素的行為。該選項將指定應該響應拖動事件的元素(默認為整個元素),在我們的示例中,我們設置了 handler 選擇器為 ".handle",即只有在鼠標在 handle 元素上時才能拖動父元素。
最后,我們可以在父組件中使用我們的 draggable 組件,在模板中使用 v-for 創建多個可拖動的 card。示例代碼如下:
<template> <div> <draggable-card v-for="card in cards" :key="card.id" v-bind="card" :id="card.id" /> </div> </template> <script> import DraggableCard from './components/DraggableCard.vue' export default { components: { DraggableCard }, data() { return { cards: [ { title: 'Card 1', description: 'Some description here', id: 'card1' }, { title: 'Card 2', description: 'Some description here', id: 'card2' }, { title: 'Card 3', description: 'Some description here', id: 'card3' }, ] } } } </script>
Vue dragdrop 幫助開發人員快速實現拖拽和排序等功能,有助于提高應用程序的用戶體驗。