vue3 拖拽vuedraggable使用

本文介绍了如何在Vue3项目中安装并使用vuedraggable库实现列表项的拖放功能,包括组件引入、属性配置、事件处理和自定义展示。着重讲解了分组、克隆、拖动逻辑和插槽的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm install vuedraggable@next --save # vue3

页面中引入 import Draggable from "vuedraggable";

    <Draggable :list="list" :item-key="item => item.id" :animation="100" class="list-group" :forceFallback="true" chosen-class="chosenClass" group="componentsGroup">
                <template #item="{ element }">
                  <div class="item bck1 group_left_Item"   @click="handleUndistr">
                            <img :src="element.avatar == null ? man : element.avatar" alt="" class="manImage" style="width: 50px;height: 50px;">
                            <div class="name">{{ element.label }}</div>
                      </div>
                </template>
</Draggable>

.list-group{

            display: flex;

            flex-wrap: wrap;

            align-content: baseline;

        }

const list = reactive([
    {
        label: "图片1",
        img: man,
        id: 1,
    },
    {
        label: "图片2",
        img: man,
        id: 2,
    },
    {
        label: "图片3",
        img: man,
        id: 3,
    },
    {
        label: "图片4",
        img: man,
        id: 4,
    },
]);

属性(Props)

  1. list:要显示和拖放的数组,该数组中的每个项将在列表中显示。
  2. group:一个字符串或函数,用于标识可拖放元素的分组。同一分组内的元素可以互相拖放,不同分组的元素之间不可拖放。
  3. clone:一个布尔值,指定是否在拖动时创建元素的克隆。默认为false,即直接移动原始元素。
  4. transition-mode:指定在拖动时元素的过渡模式,可以是in-outout-in
  5. chosen-class:拖动时选中元素应用的 CSS 类。
  6. ghost-class:拖动时生成的占位元素应用的 CSS 类。
  7. handle:一个 CSS 选择器字符串,指定拖动手柄的元素。只有拖动手柄的部分可以用于拖动,而不是整个元素。

事件(Events)

  1. start:开始拖动时触发的事件。
  2. end:拖动结束时触发的事件,包括拖动成功或取消。
  3. add:拖动项被添加到列表时触发的事件。
  4. remove:拖动项被从列表中移除时触发的事件。
  5. update:列表中的项被重新排序时触发的事件。

方法(Methods)

  1. move:一个函数,用于自定义拖动项的移动逻辑。通过返回false或其他特定值来控制是否允许移动或进行特定位置的调整。
  2. getUnderlyingVm:一个方法,用于获取当前拖动的元素对应的 Vue 实例。
  3. getRelatedContext:一个方法,用于获取相关的列表上下文信息,包括当前列表和源列表的信息。
  4. getPointerEvent:一个方法,用于获取当前拖动操作的指针事件对象。
  5. sortableMixin:一个混入对象,提供了一些实用的方法来处理拖放逻辑。

插槽(Slots)

vuedraggable还支持一些插槽,用于自定义拖动项的展示和交互:

  1. item:用于自定义每个拖动项的展示。
  2. fallback:在不支持原生拖放API的环境中,用于自定义回退模式下的拖放效果。

样式再调一调ok了,也可多列表拖拽,:list就是接收item数据的数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值