Vue Draggable | 一款基于vuejs3.x的拖拽组件
源码介绍
vue draggable 是一款基于vuejs3.x的拖拽组件。该组件允许用户进行拖放操作,并将结果同步到视图模型数组中。 vue draggable基于Sortable.js并提供它的所有功能。 vue draggable组件完全支持Sortable.js的所有功能,包括以下特性: 此外,该组件还具有以下功能: 版本说明: 本文档介绍的是vue.draggable.next,支持vue3.x。 如果要在vue2.x中使用,请查看Vue.Draggable 如果您想使用vue draggable拖拽组件,首先您需要安装它,命令如下: 基本使用 和 transition-group 一起使用 结合vuex使用 Vue Draggable 拖拽组件的可用配置参数如下: move:该属性的类型为函数,不是必需的,默认为null。如果不为null,则会以类似于Sortable onMove回调的方式调用此函数。返回false将取消拖动操作。 evt对象具有与Sortable onMove事件相同的属性,以及3个附加属性: 如果需要取消拖动操作,可以返回false。例如: componentData属性的值是一个对象,对应于我们将传递给组件的属性、props和事件。 下面是和element UI 一起使用的例子:简要教程
使用方法
安装
yarn add vuedraggable@next
// 或者
npm i -S vuedraggable@next
使用
<draggable
v-model="myArray"
group="people"
@start="drag=true"
@end="drag=false"
item-key="id">
<template #item="{element}">
<div>{{element.name}}</div>
</template>
</draggable>
import draggable from 'vuedraggable'
...
export default {
components: {
draggable,
},
data() {
return {
drag: false,
}
},
...
<draggable v-model="myArray" item-key="id">
<template #item="{element}">
<div> {{element.name}} </div>
</template>
<template #header>
<button @click="addPeople">Add</button>
</template>
</draggable>
<draggable v-model='myList'>
computed: {
myList: {
get() {
return this.$store.state.myList
},
set(value) {
this.$store.commit('updateList', value)
}
}
}
配置参数
(original) => { return original;}
。当clone选项为true时,在源组件上调用该函数以克隆元素。唯一的参数是要克隆的viewModel元素,返回值是它的克隆版本。默认情况下,vue.draggable重用viewModel元素,因此如果要克隆或深度克隆它,您必须使用此钩子。
function onMoveCallback(evt, originalEvent){
...
// return false; — for cancel
}
<draggable :list="list" :move="checkMove">
checkMove: function(evt){
return (evt.draggedContext.element.name!=='apple');
}
<draggable tag="el-collapse" :list="list" :component-data="getComponentData()" item-key="name">
<template #item="{element}">
<el-collapse-item :title="element.title" :name="element.name">
<div>{{element.description}}</div>
</el-collapse-item>
</template>
</draggable>
methods: {
handleChange() {
console.log('changed');
},
inputChanged(value) {
this.activeNames = value;
},
getComponentData() {
return {
onChange: this.handleChange,
onInput: this.inputChanged,
wrap: true,
value: this.activeNames
};
}
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Vue Draggable | 一款基于vuejs3.x的拖拽组件
发表评论 取消回复