Vue.Draggable使用文档超详细总结

2022-08-26 10:42:32

目录前言特性安装引入基础用法属性options配置项事件插槽HeaderFooter总结前言Draggable为基于Sortable.js的vue组件,用以实现拖拽功能。关于Vue.Draggable...

目录
前言
特性
安装
引入
基础用法
属性
options配置项
事件
插槽
Header
Footer
总结

前言

Draggable为基于Sortable.js的vue组件,用以实现拖拽功能。

关于Vue.Draggable详细信息可以查看github地址

特性

支持触摸设备
支持拖拽和选择文本
支持智能滚动
支持不同列表之间的拖拽
不以jquery为基础
和视图模型同步刷新
和vue2的国度动画兼容
支持撤销操作
当需要完全控制时,可以抛出所有变化
可以和现有的UI组件兼容

安装

npm install vuedraggable

引入

import draggable from 'vuedraggable'

基础用法

定义一个json串 list,实现它的拖拽排序。

<draggable v-model="list">
    <transition-group>
        <div v-for="element in list" :key="element.id">
            {{element.name}}
        </div>
    </transition-group>
</draggable>

属性

参数说明类型默认值value用于实现拖拽的list,通常和内部v-for循环的数组为同一数组Arraynulllist效果同value的。和v-model不能共用Arraynulltagdraggable 标签在渲染后展现出来的标签类型Stringdivoptionsdraggable 列表配置项ObjectnullemptyInsertThreshold拖动时,鼠标必须与空的可排序对象之间的距离Number5clone返回值为true时克隆,可以理解为正常的拖拽变成了复制。当pull:'clone时的拖拽的回调函数’Function无处理move如果不为空,这个函数将以类似于Sortable onMove回调的方式调用。返回false将取消拖动操作。FunctionnullcomponentData用来结合UI组件的,可以理解为代理了UI组件的定制信息Objectnull

注意:vuedraggable新版本废弃了options属性,建议使用v-bind属性作为配置项

options配置项

参数说明类型group用于分组,同一组的不同list可以相互拖动String/Arraysort定义是否可以拖拽Booleandelay定义鼠标选中列表单元可以开始拖动的延迟时间Numberdisabled定义是否此sortable对象是否可用Boole编程ananimation动画时间 单位:msNumberhandle使列表单元中符合选择器的元素成为拖动的手柄,只有按住拖动手柄才能使列表单元进行拖动Selectorfilter定义哪些列表单元不能进行拖放,可设置为多个选择器,中间用“,”分隔SelectorpreventOnFilter当拖动filter时是否触发event.preventDefault() 默认触javascript发Booleandraggable定义哪些列表单元可以进行拖放SelectorghostClass当拖动列表单元时会生成一个副本作为影子单元来模拟被拖动单元排序的情况,此配置项就是来给这个影子单元添加一个classSelectorchosenClass目标被选中时添加SelectordragClass目标拖动过程中添加SelectorforceFallback如果设置为true时,将不使用原生的html5的拖放,可以修改一些拖放中元素的样式等BooleanfallbackClass:当forceFallback设置为true时,拖放过程中鼠标附着单元的样式StringdataIdAttrdata-idSelectorscroll当排序的容器是个可滚动的区域,拖放可以引起区域滚动BooleanscrollFn用于自定义滚动条的适配Function(offsetX, offsetY, originalEvent, touchEvt, hoverTargetEl)ScrollSensitivity就是鼠标靠近边缘多远开始滚动默认30NumberscrollSpeed滚动速度Number

事件

参数说明回调参数start开始拖动时的回调函数function({to,from,item,clone,oldIndex,newIndex})add添加单元时的回调函数function({to,from,item,clone,oldIndex,newIndex})remove单元被移动到另一个列表时的回调函数function({to,from,item,clone,oldIndex,newIndex})update排序发生变化时的回调函数function({to,from,item,clone,oldIjsndex,newIndex})end拖动结束时的回调函数function({to,from,item,clone,oldIndex,newIndex})choose选择单元时的回调函数function({to,from,item,clone,oldIndex,newIndex})sort排序发生变化时的回调函数function({to,from,item,clone,oldIndex,newIndex})filter尝试选择一个被filter过滤的单元的回调函数function({to,from,item,clone,oldIndex,newIndex})cloneclone时的回调函数function({to,from,item,clone,oldIndex,newIndex})

插槽

页眉或页脚插槽都不能与 tarnstion-group 一起使用。

Header

使用标题插槽在vuedraggable组件中添加不可拖动的元素。它应该与draggable选项一起使用来标记draggable元素。请注意,无论标题槽在模板中的位置如何,它总是被添加到默认槽之前。

<draggable v-model="myArray" draggable=".item">
    <div v-for="element in myArray" :key="element.id" class="item">
        {{element.name}}
    </div>
    <button slot="header" @click="addPeople">Add</button>
</draggable>

Footer

使用页脚槽在vuedraggable组件中添加不可拖动的元素。它应该与draggable选项一起使用,以标记draggable元素。请注意,无论页脚槽在模板中的位置如何,它都将始终添加到默认槽之后。

<draggable v-model="myArray" draggable=".item">
    <div v-for="element in myArray" :key="element.id" class="item">
        {{element.name}}
    </div>
    <button slot="footer" @click="addPeople">Add</button>
</draggable>

总结

到此这篇关于Vue.Draggable使用文档超的文章就介绍到这了,更多相关Vue.Draggable使用文档内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!