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>
相关推荐
(⊙o⊙)~哦1 小时前
JavaScript substring() 方法
前端
无心使然云中漫步1 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript
Bug缔造者1 小时前
Element-ui el-table 全局表格排序
前端·javascript·vue.js
xnian_2 小时前
解决ruoyi-vue-pro-master框架引入报错,启动报错问题
前端·javascript·vue.js
罗政2 小时前
[附源码]超简洁个人博客网站搭建+SpringBoot+Vue前后端分离
vue.js·spring boot·后端
麒麟而非淇淋3 小时前
AJAX 入门 day1
前端·javascript·ajax
2401_858120533 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
阿树梢3 小时前
【Vue】VueRouter路由
前端·javascript·vue.js
随笔写4 小时前
vue使用关于speak-tss插件的详细介绍
前端·javascript·vue.js
史努比.4 小时前
redis群集三种模式:主从复制、哨兵、集群
前端·bootstrap·html