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

vue3实现vuedraggable实现拖拽到垃圾桶图标位置进行删除

当使用Vue 3和vuedraggable库时,你可以按照以下方式实现拖拽到垃圾桶图标位置进行删除的功能:

首先,确保你已经安装了vuedraggable库。如果没有安装,可以通过以下命令进行安装:

vuedraggable  和vue-draggable-plus使用非常类似,你可以自己选择安装哪种。

vue-draggable-plus中文文档参考:

https://vue-draggable-plus.pages.dev/guide/

1、安装:

npm install vue-draggable-plus

2、引入

import { VueDraggable } from "vue-draggable-plus";

3、使用

在这个示例中:

  1. 使用了Vue 3的ref来创建items的响应式数据。
  2. 使用setup函数来设置itemsonDragEnddeleteItem等函数。
  3. 使用draggable组件来实现拖拽功能,绑定了items数据。
  4. 在拖拽结束时,会触发onDragEnd函数,你可以在这里处理拖拽结束的逻辑。
  5. 垃圾桶图标位置的<div>元素设置了@dragover.prevent@drop="deleteItem"事件,当拖拽到该位置时,会触发deleteItem函数来删除对应的项。
  6. deleteItem函数中,根据拖拽的数据项的id来过滤掉对应的项,实现删除功能。
<template><div><draggable v-model="items" @end="onDragEnd"><div v-for="item in items" :key="item.id" class="draggable-item">{{ item.text }}</div></draggable><div class="trash-can" @dragover.prevent @drop="deleteItem">🗑️ Drag Here to Delete</div></div>
</template><script>
import { ref } from 'vue';
import draggable from 'vuedraggable';export default {components: {draggable},setup() {const items = ref([{ id: 1, text: 'Item 1' },{ id: 2, text: 'Item 2' },{ id: 3, text: 'Item 3' },{ id: 4, text: 'Item 4' }]);const onDragEnd = (event) => {// 拖拽结束时的逻辑};const deleteItem = (event) => {const itemId = event.dataTransfer.getData('text/plain');items.value = items.value.filter(item => item.id.toString() !== itemId);};return {items,onDragEnd,deleteItem};}
};
</script><style>
.trash-can {border: 2px dashed #ccc;padding: 20px;margin-top: 20px;text-align: center;cursor: pointer;
}
</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TypeScript中的交叉类型
  • Qt/C++项目积累: 2.主机监控器 - 2.2 历史功能实现
  • 解决QT creator中文乱码问题
  • 【RHCE】系统服务综合实验
  • WPS点击Zotero插入没有任何反应
  • 谷粒商城学习笔记-18-快速开发-配置测试微服务基本CRUD功能
  • 从3D扫描到CAD模型【逆向工程】
  • 使用大模型进行SQL迁移的实践总结
  • 力扣8,字符串转换整数
  • 搭建基于 ChatGPT 的问答系统
  • 代码随想录算法训练营DAY60|并查集理论基础、寻找存在的路径
  • 攻防世界(PHP过滤器过滤)file_include
  • html+css+js随机验证码
  • 文学式开发工具 Jupyter Notebook
  • 设计模式探索:观察者模式
  • 分享的文章《人生如棋》
  • Android开源项目规范总结
  • AWS实战 - 利用IAM对S3做访问控制
  • canvas 高仿 Apple Watch 表盘
  • canvas绘制圆角头像
  • CSS 提示工具(Tooltip)
  • CSS实用技巧干货
  • DOM的那些事
  • ES6核心特性
  • es的写入过程
  • HTTP 简介
  • Js基础知识(四) - js运行原理与机制
  • ng6--错误信息小结(持续更新)
  • Terraform入门 - 3. 变更基础设施
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 计算机在识别图像时“看到”了什么?
  • 力扣(LeetCode)357
  • -- 数据结构 顺序表 --Java
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 云大使推广中的常见热门问题
  • 转载:[译] 内容加速黑科技趣谈
  • kubernetes资源对象--ingress
  • 容器镜像
  • # .NET Framework中使用命名管道进行进程间通信
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (¥1011)-(一千零一拾一元整)输出
  • (bean配置类的注解开发)学习Spring的第十三天
  • (BFS)hdoj2377-Bus Pass
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (回溯) LeetCode 77. 组合
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (五)网络优化与超参数选择--九五小庞
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Framework杂记