vue使用vue-draggable的全過程
Vue-draggable是一個基于Vue.js的可拖拽組件庫,可以方便地實現(xiàn)拖拽排序、拖拽交換等功能。
安裝
首先需要安裝vue-draggable組件庫。
可以通過npm進行安裝:
npm install vuedraggable --save
使用
1.引入組件
在vue組件中引入vuedraggable組件:
import draggable from 'vuedraggable'
2.注冊組件
在vue組件中注冊draggable組件:
export default {
components: {
draggable
}
}
3.使用組件
在vue模板中使用draggable組件:
<draggable v-model="list" :options="dragOptions">
<div v-for="item in list" :key="item.id">{{ item.name }}</div>
</draggable>
參數(shù)配置
在使用draggable組件時,可以傳遞一些參數(shù)進行配置。
下面是一些常用的參數(shù):
1.v-model
v-model用于綁定數(shù)據(jù),它綁定的是一個數(shù)組,這個數(shù)組就是我們需要排序的數(shù)據(jù)。
例如:
data () {
return {
list: [
{id: 1, name: 'item1'},
{id: 2, name: 'item2'},
{id: 3, name: 'item3'}
]
}
}
2.options
options是一個對象,用于配置draggable組件的行為。
下面是一些常用的配置:
dragOptions: {
animation: 200, // 動畫時間,單位毫秒
group: 'items', // 分組,同一分組內(nèi)的元素可以互相拖拽
disabled: false, // 是否禁用拖拽功能
ghostClass: 'ghost', // 拖拽過程中占位元素的class名稱
handle: '.handle', // 拖拽手柄,只有拖拽手柄內(nèi)的元素才能被拖拽
sort: true, // 是否啟用排序功能
draggable: '.item', // 可拖拽元素的選擇器
filter: '.ignore' // 不可拖拽元素的選擇器
}
3.events
draggable組件還提供了一些事件,可以在事件回調(diào)函數(shù)中處理一些邏輯。
下面是一些常用的事件:
methods: {
onEnd (evt) { // 拖拽結(jié)束時觸發(fā)
console.log('onEnd', evt)
},
onMove (evt) { // 拖拽過程中觸發(fā)
console.log('onMove', evt)
},
onStart (evt) { // 開始拖拽時觸發(fā)
console.log('onStart', evt)
}
}
完整示例
下面是一個完整的示例:
<template>
<div>
<h1>Vue Draggable Example</h1>
<draggable v-model="list" :options="dragOptions" @end="onEnd" @move="onMove" @start="onStart">
<div v-for="item in list" :key="item.id" class="item">
<span class="handle">?</span>{{ item.name }}
</div>
</draggable>
</div>
</template>
<script>
import draggable from 'vuedraggable'
export default {
components: {
draggable
},
data () {
return {
list: [
{id: 1, name: 'item1'},
{id: 2, name: 'item2'},
{id: 3, name: 'item3'}
],
dragOptions: {
animation: 200,
group: 'items',
disabled: false,
ghostClass: 'ghost',
handle: '.handle',
sort: true,
draggable: '.item',
filter: '.ignore'
}
}
},
methods: {
onEnd (evt) {
console.log('onEnd', evt)
},
onMove (evt) {
console.log('onMove', evt)
},
onStart (evt) {
console.log('onStart', evt)
}
}
}
</script><style>
.ghost {
opacity: 0.5;
background-color: #ccc;
}
.handle {
cursor: move;
user-select: none;
}
.ignore {
pointer-events: none;
}
</style>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue組件傳值過程中丟失數(shù)據(jù)的分析與解決方案
這篇文章主要給大家介紹了關(guān)于Vue組件傳值過程中丟失數(shù)據(jù)的分析與解決方案,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
vue出現(xiàn)Uncaught SyntaxError:Unexpected token問題及解決
這篇文章主要介紹了vue出現(xiàn)Uncaught SyntaxError:Unexpected token問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
vue使用pdfjs-dist+fabric實現(xiàn)pdf電子簽章的思路詳解
最近領(lǐng)導提了一個新需求:仿照e簽寶,實現(xiàn)pdf電子簽章,本文給大家介紹vue使用pdfjs-dist+fabric實現(xiàn)pdf電子簽章的思路,感興趣的朋友一起看看吧2023-12-12
解決vue中修改了數(shù)據(jù)但視圖無法更新的情況
今天小編就為大家分享一篇解決vue中修改了數(shù)據(jù)但視圖無法更新的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue 實現(xiàn)路由跳轉(zhuǎn)時更改頁面title
今天小編就為大家分享一篇vue 實現(xiàn)路由跳轉(zhuǎn)時更改頁面title,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11

