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>
    <draggable v-model="items" @end="onDragEnd">
    {{ item.text }}
    </draggable>
    🗑️ Drag Here to Delete
    </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>
相关推荐
前端工作日常9 小时前
我学习到的AG-UI的概念
前端
韩师傅10 小时前
前端开发消亡史:AI也无法掩盖没有设计创造力的真相
前端·人工智能·后端
XiaoYu200210 小时前
第12章 支付宝SDK
前端
双向3310 小时前
RAG的下一站:检索增强生成如何重塑企业知识中枢?
前端
拖拉斯旋风10 小时前
从零开始:使用 Ollama 在本地部署开源大模型并集成到 React 应用
前端·javascript·ollama
asing10 小时前
🤯 为什么我的收银台在鸿蒙系统“第一次返回”死活拦不住?一次差点背锅的排查实录
前端·harmonyos
德育处主任10 小时前
『NAS』在群晖部署图片压缩工具-Squoosh
前端·javascript·docker
Hao_Harrision10 小时前
50天50个小项目 (React19 + Tailwindcss V4) ✨| ThreeDBackgroundBoxes(3D背景盒子组件)
前端·3d·typescript·react·tailwindcss·vite7
加个鸡腿儿10 小时前
经验分享2:SSR 项目中响应式组件的闪动陷阱与修复实践
前端·css·架构
心.c11 小时前
如何基于 RAG 技术,搭建一个专属的智能 Agent 平台
开发语言·前端·vue.js