当前位置:首页 > VUE

vue实现列表拖拽

2026-02-20 03:36:12VUE

Vue 实现列表拖拽的方法

在 Vue 中实现列表拖拽功能,可以通过原生 HTML5 的拖放 API 或使用第三方库如 vuedraggable。以下是两种常见的方法:

使用 HTML5 拖放 API

HTML5 提供了原生的拖放 API,可以通过监听拖放事件实现列表拖拽功能。

<template>
  <div>
    <ul>
      <li 
        v-for="(item, index) in list" 
        :key="index"
        draggable="true"
        @dragstart="handleDragStart(index)"
        @dragover.prevent
        @drop="handleDrop(index)"
      >
        {{ item }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['Item 1', 'Item 2', 'Item 3', 'Item 4'],
      draggedIndex: null
    };
  },
  methods: {
    handleDragStart(index) {
      this.draggedIndex = index;
    },
    handleDrop(index) {
      const draggedItem = this.list[this.draggedIndex];
      this.list.splice(this.draggedIndex, 1);
      this.list.splice(index, 0, draggedItem);
    }
  }
};
</script>

使用 vuedraggable

vuedraggable 是一个基于 Sortable.js 的 Vue 拖拽库,使用起来更加简单高效。

安装依赖:

npm install vuedraggable

使用示例:

<template>
  <div>
    <draggable v-model="list" @end="onDragEnd">
      <div v-for="(item, index) in list" :key="index">
        {{ item }}
      </div>
    </draggable>
  </div>
</template>

<script>
import draggable from 'vuedraggable';

export default {
  components: {
    draggable
  },
  data() {
    return {
      list: ['Item 1', 'Item 2', 'Item 3', 'Item 4']
    };
  },
  methods: {
    onDragEnd() {
      console.log('拖拽完成', this.list);
    }
  }
};
</script>

注意事项

  • 使用 HTML5 拖放 API 时,需要手动处理拖拽逻辑,适合简单场景。
  • vuedraggable 提供了更多高级功能,如动画、拖拽手柄等,适合复杂场景。
  • 在移动端使用时,可能需要额外处理触摸事件。

两种方法均可实现列表拖拽功能,根据项目需求选择合适的方式。

vue实现列表拖拽

标签: 拖拽列表
分享给朋友:

相关文章

vue实现拖拽div

vue实现拖拽div

Vue 实现拖拽 Div 的方法 使用原生 HTML5 拖拽 API HTML5 提供了原生的拖拽 API,结合 Vue 的事件绑定可以快速实现拖拽功能。以下是实现步骤: <template…

vue实现列表添加

vue实现列表添加

使用 Vue 实现列表添加功能 数据绑定与列表渲染 在 Vue 中,通过 v-for 指令可以轻松实现列表渲染。首先需要定义一个数组来存储列表数据,并在模板中使用 v-for 循环渲染。 <t…

vue实现文本列表

vue实现文本列表

Vue 实现文本列表的方法 Vue 可以通过多种方式实现文本列表的渲染和管理,以下是几种常见的方法: 使用 v-for 指令渲染列表 通过 v-for 指令可以动态渲染数组或对象中的文本列表。…

vue 实现可拖拽

vue 实现可拖拽

实现拖拽功能的基本思路 在Vue中实现拖拽功能可以通过HTML5的Drag and Drop API或第三方库如vuedraggable来完成。以下是两种常见方法的详细说明。 使用HTML5原生拖…

vue实现div拖拽

vue实现div拖拽

Vue 实现 Div 拖拽的方法 使用原生 HTML5 拖拽 API 在 Vue 中可以通过 HTML5 的拖拽 API 实现基础拖拽功能。需要为元素添加 draggable 属性,并监听 drags…

vue实现列表分类

vue实现列表分类

Vue 实现列表分类的方法 使用计算属性分类 通过计算属性对原始数组进行分类处理,返回分组后的对象或数组。适用于静态数据或需要响应式更新的场景。 computed: { categorizedI…