尤雨溪都在推荐的 vue 拖拽库! -63棋牌

  • 3,554 views
  • 阅读模式

最近看到尤雨溪推荐了一个基于 vue 的拖拽库:vuedraggableplus,本文就来看看这个拖拽库有什么特别之处!

尤雨溪都在推荐的 vue 拖拽库!

概念

sortablejs 是一个非常流行的拖拽库,不过这个库的 vue 3 版本已经三年没更新了,可以说是已经跟 vue 3 严重脱节,所以诞生了这个项目,这个组件是基于 sortablejs 的。

尤雨溪都在推荐的 vue 拖拽库!

在 sortablejs 官方以往的 vue 组件中,都是通过使用组件作为列表的直接子元素来实现拖拽列表,当使用一些组件库时,如果组件库中没有提供列表根元素的插槽,就很难实现拖拽列表,vue-draggable-plus 完美解决了这个问题,它可以让你在任何元素上使用拖拽列表,可以使用指定元素的选择器,来获取到列表根元素,然后将列表根元素作为 sortablejs 的 container。

vuedraggableplus 是一个支持 vue2 和 vue3 的拖拽库,它具有以下特性:

  • 功能齐全:全面继承 sortable.js 的所有功能
  • 无缝迁移:适用于 vue 3 和 vue2
  • 灵活使用:支持组件、指令、函数式调用,总有一款是您喜欢的
  • 类型强:用 typescript 编写,带有完整的 ts 文档
  • 双向绑定:支持 v-model 双向绑定
  • 自定义容器:将指定容器作为拖拽容器

使用

在使用 之前,需要使用以下 npm 命令进行安装:

npm install vue-draggable-plus

vuedraggableplus 支持通过组件、指令、hooks方式使用:

  • 组件方式:

  • hooks 方式:

  • 指令方式:

尤雨溪都在推荐的 vue 拖拽库!
vuedraggableplus 提供非常多的 api:
参数说明类型默认值
animation拖动时显示动画number0
chosenclass被选中项的 css 类名string'sortable-chosen'
delay选中拖拽延时number0
delayontouchonlytouch 事件延迟number0
direction拖拽方向,默认自动判断'vertical'\'horizontal'
disabled是否禁止拖拽booleanfalse
dragclass拖拽项类名string'sortable-drag'
draggable指定元素内的哪些项目应该是可拖动的string-
emptyinsertthreshold拖动时鼠标必须与空可排序项的距离(以像素为单位),以便将拖动元素插入到该可排序项中, 设置为0禁用此功能。number5
easing简化动画。easing-
fallbackclass当使用forcefallback的时候,被复制的dom的css类名stringsortable-fallback
fallbackonbody将cloned dom 元素挂到body元素上。booleanfalse
fallbacktolerance以像素为单位指定鼠标在被视为拖动之前应该移动多远。number0
filter不需要进行拖动的元素string-
forcefallback忽略 html5拖拽行为,强制回退booleanfalse
ghostclassdrop placeholder的css类名string'sortable-ghost'
group要将元素从一个列表拖到另一个列表中,两个列表必须具有相同的group 值。您还可以定义列表是否可以被移出、或者克隆以及接收其他列表元素。详情查阅上方ts类型定义group-
handle设置可拖拽句柄的css类名,如果不设置,默认对目标元素的子列表操作进行拖拽string-
invertswap如果设置为 true,将始终使用反向交换区booleanfalse
invertedswapthreshold反向交换阈值,默认情况下将设置为swapthreshold 值number-
preventonfilter触发filter时调用event.preventdefault()booleantrue
removecloneonhide删除不显示的克隆元素,而不是仅仅隐藏它booleantrue
sort定义列表单元是否可以在列表容器内进行拖拽排序booleantrue
swapthreshold交换区的阈值number1
touchstartthreshold在取消延迟拖动事件之前点应该移动多少像素number1
setdata传递一个函数,函数的第一个参数为datatransfer类型,第二个参数为htmlelement 类型function
scroll是否启用滚动boolean\htmlelement
scrollfn自定义滚动scrollfn-
scrollsensitivity鼠标必须离边缘多近才能开始滚动,单位 pxnumber-
scrollspeed滚动速度(ms/px)number-
bubblescroll将自动滚动应用于所有父元素,以便更轻松地移动booleantrue
onchoose元素被选中((event: sortableevent) => void)-
onunchoose元素取消选中((event: sortableevent) => void)-
onstart元素开始拖拽((event: sortableevent) => void)-
onend元素取消拖拽((event: sortableevent) => void)-
onadd元素从一个列表拖拽到另一个列表((event: sortableevent) => void)-
onupdate元素顺序更新时触发((event: sortableevent) => void)-
onsort列表的任何更改都会触发((event: sortableevent) => void)-
onremove元素从列表中移除进入另一个列表((event: sortableevent) => void)-
onfilter试图拖拽一个filtered的元素((event: sortableevent) => void)-
onmove拖拽移动的时候触发((event: moveevent,originalevent: event) => void)-
onclone克隆一个元素时触发((event: sortableevent) => void)-
onchange拖拽元素改变位置时触发((event: sortableevent) => void)-

开源地址:

github:https://github.com/alfred-skyblue/vue-draggable-plus

weinxin
扫码关注微信公众号--it老五
微信扫一扫关注公众号,获取更多实用app,订阅地址不定时更新
  • 本文由 发表于 2023-12-15 17:12:43
  • 转载请务必保留本文链接:https://itlao5.com/10741.html
评论  1  访客  1
  1. 文章不错支持一下吧

发表评论

匿名网友 填写信息


确定