当前位置:首页 > 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

使用示例:

vue实现列表拖拽

<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拖拽实现

Vue 拖拽实现方法 使用 HTML5 原生拖拽 API HTML5 提供了原生拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事…

vue列表查询实现

vue列表查询实现

实现Vue列表查询功能 基本数据绑定与渲染 在Vue中实现列表查询,首先需要定义数据源和查询条件。通过v-model绑定搜索输入框,使用计算属性过滤列表。 <template> &l…

jquery拖拽

jquery拖拽

jQuery拖拽实现方法 使用jQuery实现拖拽功能可以通过多种方式完成,以下是常见的实现方法: 使用jQuery UI的Draggable组件 jQuery UI提供了现成的拖拽组件,只需引入相…

vue 实现可拖拽

vue 实现可拖拽

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

前端vue实现拖拽

前端vue实现拖拽

Vue 实现拖拽功能的方法 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

vue实现筛选列表

vue实现筛选列表

Vue 实现筛选列表的方法 数据绑定与列表渲染 使用 v-for 指令渲染原始列表,绑定到 data 中的数组。例如: data() { return { items: […