当前位置: 首页 > news >正文

一个非常实用的 Vue 拖拽组件,成熟、稳定且功能丰富的拖拽库,效率与灵活性的双重提升(带私活源码)

今天要为大家介绍一个非常实用的 Vue 拖拽组件 —— Vue Draggable Plus。无论你是 Vue 2 的忠实用户,还是已经拥抱了 Vue 3 的新特性,这个组件都将为你的拖拽需求带来全新的解决方案。

图片

VueDraggablePlus

Vue Draggable Plus 继承了 Sortable.js 的所有功能,这意味着你可以享受到一个成熟、稳定且功能丰富的拖拽库所带来的便利。无论你的项目是基于 Vue 2 还是 Vue 3,Vue Draggable Plus 都能完美适配,让你的迁移之路无比顺畅。

特点

图片

  • 功能齐全:该组件全面继承了 Sortable.js 的所有功能,为用户提供了丰富的拖拽操作选项。

  • 无缝迁移:兼容 Vue 3 和 Vue 2,使得从旧版本到新版本的迁移变得轻松无障碍。

  • 灵活使用:支持通过组件、指令或函数式调用等多种方式使用,满足了不同开发者的使用习惯和项目需求。

  • 类型安全:使用 TypeScript 编写,提供了完整的 TypeScript 文档,确保了代码的类型安全和易于维护。

  • 双向绑定:支持 v-model 双向绑定,使得数据的同步和更新更加直观和便捷。

  • 自定义容器:允许开发者将任意指定的容器作为拖拽容器,增加了组件的灵活性和使用场景。

  • 易于集成:Vue Draggable Plus 易于集成到现有的 Vue 项目中,无论是小型项目还是大型应用,都能快速引入并使用。

  • 社区支持:作为开源项目,Vue Draggable Plus 拥有活跃的社区支持,用户可以从社区获得帮助和最新的更新。

安装使用

通过 npm 或 yarn 安装 Vue Draggable Plus

npm install vue-draggable-plus
# 或者
yarn add vue-draggable-plus

有两种方式可以实现拖拽

方式一:使用组件实现拖拽
<template><div class="flex"><VueDraggableref="el"v-model="list":disabled="disabled":animation="150"ghostClass="ghost"class="flex flex-col gap-2 p-4 w-300px h-300px m-auto bg-gray-500/5 rounded"@start="onStart"@update="onUpdate"@end="onEnd"><divv-for="item in list":key="item.id"class="cursor-move h-30 bg-gray-500/5 rounded p-3">{{ item.name }}</div></VueDraggable><preview-list :list="list" /></div>
</template><script setup lang="ts">
import { ref } from 'vue'
import {type DraggableEvent,type UseDraggableReturn,VueDraggable
} from 'vue-draggable-plus'
const list = ref([{name: 'Joao',id: 1},{name: 'Jean',id: 2}
])const el = ref<UseDraggableReturn>()
const disabled = ref(false)
function pause() {el.value?.pause()
}function start() {el.value?.start()
}const onStart = (e: DraggableEvent) => {console.log('start', e)
}const onEnd = (e: DraggableEvent) => {console.log('onEnd', e)
}const onUpdate = () => {console.log('update')
}
</script>
方式二:使用函数实现拖拽
<template><button @click="start()">start</button><div class="flex"><divclass="flex flex-col gap-2 p-4 w-300px h-300px m-auto bg-gray-500/5 rounded"ref="el"><divv-for="item in list":key="item.id"class="h-30 bg-gray-500/5 rounded p-3 cursor-move">{{ item.name }}</div></div><preview-list :list="list" /></div>
</template><script setup lang="ts">
import { ref } from 'vue'
import { useDraggable } from 'vue-draggable-plus'
const list = ref([{name: 'Joao',id: 1},{name: 'Jean',id: 2}
])
const el = ref()const { start } = useDraggable(el, list, {animation: 150,ghostClass: 'ghost',onStart() {console.log('start')},onUpdate() {console.log('update')}
})
</script>

图片

示例

官网有很多例子,并且还有详细的文档,方便开发人员进行开发

图片

双列表拖拽排序

多列表之间拖拽排序,双向绑定数据。

图片

拖拽克隆

从一个列表中拖拽克隆到另一个列表,可以通过 clone 属性来开启它

图片

指定元素触发

我们可以通过 handle 属性传递一个选择器,来指定拖拽的句柄。

图片

表格拖拽

表格的 tbody 指定为目标容器,实现表格拖拽

图片

Vue Draggable Plus基于 Sortable.js,所以 拥有活跃的社区和持续的维护,无论是简单的列表拖拽,还是复杂的界面布局调整,Vue Draggable Plus 都能胜任。

如果想要了解更多的信息,或者查看更多示例和文档可以访问:

https://github.com/Alfred-Skyblue/vue-draggable-plus

写在最后(私活源码)

今天给大家分享一套基于Springboot+Vue仓库管理系统源码,在实际项目中可以直接复用。(免费提供,文末自取)

一、系统运行图(设计报告和接口文档)

1、登陆页面

2、物品信息管理

3、设计报告包含接口文档

二、系统搭建视频教程

源码免费领取方式

扫码关注本号,回复 仓库

扫码关注本号,回复 仓库 

持续关注,有更多私活源码免费分享

 


http://www.mrgr.cn/news/57067.html

相关文章:

  • 鸿蒙系统 VS 安卓系统,谁将引领未来移动操作系统?
  • 【快速上手】使用 Vite 来创建一个 Vue 3项目
  • rk3568创建基于Ubuntu18.04交叉编译遇到的坑
  • Android中的MVP模式
  • Unity加载界面制作
  • 京准电钟:NTP网络授时服务器应用航管自控系统
  • 数据库聚合函数
  • 等价文件名绕过
  • 技术速递|Microsoft.Extensions.AI 预览版简介 – 适用于 .NET 的统一 AI 构建块
  • 10.18做题记
  • C#中的LINQ之美:优雅的数据查询与操作
  • 云轴科技ZStack信创云平台助力上海科技大学实现信创业务落地
  • Redis学习文档(Redis基本数据类型【Hash、Set】)
  • java版鸿鹄招投标系统源码 招标采购系统源码 询比价投标平台源码
  • Android按钮Button
  • SSM-Springboot笔记(7)- Servlet3.0和SpringBoot过滤器和拦截器
  • OPPO携手比亚迪共同探索手机与汽车互融新时代
  • 056_基于python新闻采集与订阅平台
  • NC 单据模板自定义项 设置参照,比如部门参照、自定义参照等
  • 迁移学习和在线学习小结
  • macOS下QuickTime player+Blackhole录视频只录制系统声音
  • 数学之美——程序员的专属浪漫
  • MySQL中如何根据部门id,查询员工表的人数
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——14.哈希(3)(布隆过滤器和位图)
  • CSS常见面试题
  • 一文掌握Kubernetes的Empty存储类型实践