Vue3 拖拽库
常用拖拽库
1. Vue Draggable
- 官网地址: https://github.com/SortableJS/Vue.Draggable
- 使用文档: https://sortablejs.github.io/Vue.Draggable/
- 简介: 基于Sortable.js的Vue3拖拽组件,支持拖拽排序、拖拽列表等功能
- 特点:
- 支持Vue3
- 支持触摸设备
- 支持拖拽手柄
- 支持拖拽动画
- 支持列表排序
2. vuedraggable Plus
- 官网地址: https://github.com/SortableJS/vuedraggable-plus
- 使用文档: https://sortablejs.github.io/vuedraggable-plus/
- 简介: Vue Draggable的增强版,提供更多功能和更好的性能
- 特点:
- 支持Vue3
- 支持虚拟滚动
- 支持树形结构拖拽
- 支持复杂拖拽场景
3. Vue Use Draggable
- 官网地址: https://github.com/vueuse/motion
- 使用文档: https://vueuse.org/motion/
- 简介: 基于Vue Use的拖拽组件,提供简单的拖拽功能
- 特点:
- 支持Vue3
- 轻量级
- 基于Vue Use Composition API
- 支持动画效果
4. SortableJS
- 官网地址: https://github.com/SortableJS/Sortable
- 使用文档: https://sortablejs.github.io/Sortable/
- 简介: 强大的原生JS拖拽库,可以在Vue3中使用
- 特点:
- 原生JS实现,性能优秀
- 支持多种拖拽场景
- 支持触摸设备
- 支持拖拽动画
5. react-dnd (在Vue3中使用)
- 官网地址: https://github.com/react-dnd/react-dnd
- 使用文档: https://react-dnd.github.io/react-dnd/
- 简介: 虽然是React生态的拖拽库,但也可以在Vue3中使用
- 特点:
- 强大的拖拽功能
- 支持复杂拖拽场景
- 支持拖拽预览
- 支持拖拽动画
6. @dnd-kit/core
- 官网地址: https://github.com/clauderic/dnd-kit
- 使用文档: https://docs.dndkit.com/
- 简介: 现代化的拖拽库,支持Vue3
- 特点:
- 支持Vue3
- 现代化API设计
- 高性能
- 支持触摸设备
- 支持拖拽动画
7. vuedraggable-next
- 官网地址: https://github.com/SortableJS/vuedraggable-next
- 使用文档: https://sortablejs.github.io/vuedraggable-next/
- 简介: Vue Draggable的下一代版本,专门为Vue3设计
- 特点:
- 专为Vue3设计
- 更好的性能
- 更好的TypeScript支持
- 支持树形结构拖拽
8. vue-draggable-resizable
- 官网地址: https://github.com/isaacHagoel/vue-draggable-resizable
- 使用文档: https://isaacHagoel.github.io/vue-draggable-resizable/
- 简介: 支持拖拽和调整大小的Vue3组件
- 特点:
- 支持拖拽
- 支持调整大小
- 支持边界限制
- 支持自定义事件
- 支持键盘控制
9. vuedraggable-ghost
- 官网地址: https://github.com/SortableJS/vuedraggable-ghost
- 使用文档: https://sortablejs.github.io/vuedraggable-ghost/
- 简介: 带有拖拽幽灵效果的Vue3拖拽组件
- 特点:
- 支持拖拽幽灵效果
- 支持自定义拖拽样式
- 支持拖拽动画
- 支持拖拽预览
10. vue-drag-drop
- 官网地址: https://github.com/xbresson/vue-drag-drop
- 使用文档: https://xbresson.github.io/vue-drag-drop/
- 简介: 轻量级的Vue3拖拽库
- 特点:
- 轻量级
- 简单易用
- 支持自定义事件
- 支持拖拽动画
11. vue-draggable-nuxt
- 官网地址: https://github.com/SortableJS/vue-draggable-nuxt
- 使用文档: https://sortablejs.github.io/vue-draggable-nuxt/
- 简介: 专为Nuxt3设计的拖拽组件
- 特点:
- 专为Nuxt3设计
- 支持SSR
- 支持自动导入
- 支持拖拽排序
12. vue3-draggable-plus
- 官网地址: https://github.com/Tohrn/vue3-draggable-plus
- 使用文档: https://tohrn.github.io/vue3-draggable-plus/
- 简介: 增强版的Vue3拖拽组件
- 特点:
- 支持拖拽和缩放
- 支持多点触控
- 支持自定义事件
- 支持拖拽动画
13. vue3-draggable-grid
- 官网地址: https://github.com/isaacHagoel/vue3-draggable-grid
- 使用文档: https://isaacHagoel.github.io/vue3-draggable-grid/
- 简介: 支持网格拖拽的Vue3组件
- 特点:
- 支持网格拖拽
- 支持网格对齐
- 支持自定义网格大小
- 支持拖拽动画
14. vue3-draggable-dialog
- 官网地址: https://github.com/isaacHagoel/vue3-draggable-dialog
- 使用文档: https://isaacHagoel.github.io/vue3-draggable-dialog/
- 简介: 可拖拽的Vue3对话框组件
- 特点:
- 支持拖拽对话框
- 支持调整大小
- 支持自定义样式
- 支持拖拽动画
15. vue3-draggable-kanban
- 官网地址: https://github.com/isaacHagoel/vue3-draggable-kanban
- 使用文档: https://isaacHagoel.github.io/vue3-draggable-kanban/
- 简介: 支看板拖拽的Vue3组件
- 特点:
- 支持看板拖拽
- 支持列拖拽
- 支持卡片拖拽
- 支持拖拽动画
使用示例
Vue Draggable 基本使用
vue
<template>
<div>
<draggable v-model="list">
<div v-for="item in list" :key="item.id" class="item">
{{ item.name }}
</div>
</draggable>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { useDraggable } from '@vueuse/core'
const list = ref([
{ id: 1, name: 'Item 1' },
{ id: 2, name: 'Item 2' },
{ id: 3, name: 'Item 3' }
])
</script>选择建议
- 简单列表拖拽:推荐使用 Vue Draggable
- 复杂拖拽场景:推荐使用 @dnd-kit/core 或 vuedraggable Plus
- 需要树形结构拖拽:推荐使用 vuedraggable Plus 或 vuedraggable-next
- 需要高性能:推荐使用 SortableJS
- 喜欢现代化API:推荐使用 @dnd-kit/core