当前位置:首页 > VUE

vue实现表格拖拽教程

2026-02-25 00:50:58VUE

Vue 表格拖拽实现方法

安装依赖库 推荐使用 vuedraggablesortablejs 实现拖拽功能。通过 npm 或 yarn 安装:

npm install vuedraggable
# 或
yarn add vuedraggable

基础表格拖拽实现 在 Vue 组件中引入 vuedraggable,绑定数据到表格:

vue实现表格拖拽教程

<template>
  <draggable v-model="tableData" tag="table" item-key="id">
    <template #item="{ element }">
      <tr>
        <td>{{ element.id }}</td>
        <td>{{ element.name }}</td>
      </tr>
    </template>
  </draggable>
</template>

<script>
import draggable from 'vuedraggable'
export default {
  components: { draggable },
  data() {
    return {
      tableData: [
        { id: 1, name: 'Item 1' },
        { id: 2, name: 'Item 2' }
      ]
    }
  }
}
</script>

进阶功能配置 添加拖拽手柄和动画效果:

<draggable 
  v-model="tableData"
  handle=".handle"
  animation="200"
>
  <template #item="{ element }">
    <tr>
      <td><span class="handle">☰</span></td>
      <td>{{ element.name }}</td>
    </tr>
  </template>
</draggable>

跨表格拖拽实现 设置 group 属性实现表格间拖拽:

vue实现表格拖拽教程

<draggable 
  v-model="list1" 
  group="tables" 
  @end="onDragEnd"
>
  <!-- 表格内容 -->
</draggable>

<draggable 
  v-model="list2" 
  group="tables"
>
  <!-- 表格内容 -->
</draggable>

与 Element UI 集成 在 Element UI 表格中使用拖拽:

<el-table :data="tableData" row-key="id">
  <el-table-column label="拖拽" width="80">
    <template #default>
      <i class="el-icon-rank" style="cursor: move"></i>
    </template>
  </el-table-column>
  <!-- 其他列 -->
</el-table>

<script>
import Sortable from 'sortablejs'
export default {
  mounted() {
    this.rowDrop()
  },
  methods: {
    rowDrop() {
      const tbody = document.querySelector('.el-table__body-wrapper tbody')
      Sortable.create(tbody, {
        onEnd: ({ newIndex, oldIndex }) => {
          const currRow = this.tableData.splice(oldIndex, 1)[0]
          this.tableData.splice(newIndex, 0, currRow)
        }
      })
    }
  }
}
</script>

注意事项

  • 确保为每行数据设置唯一的 key
  • 复杂场景建议使用 Sortable.js 原生库
  • 移动端需添加 touch 事件支持
  • 拖拽后及时更新后端数据

以上方法可根据实际需求组合使用,实现从简单到复杂的表格拖拽功能。

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

相关文章

vue实现表格复选

vue实现表格复选

实现表格复选的基本思路 在Vue中实现表格复选功能,通常需要结合v-model绑定选中状态,监听复选框变化事件,以及维护一个选中项的数组。以下是具体实现方法: 基础实现步骤 数据准备 定义表格数据和…

vue 实现跨行表格

vue 实现跨行表格

实现跨行表格的方法 在Vue中实现跨行表格可以通过多种方式完成,以下是几种常见的方法: 使用HTML原生表格 HTML原生表格支持rowspan属性,可以直接在Vue模板中使用: <tabl…

vue 实现可拖拽

vue 实现可拖拽

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

vue实现面板拖拽

vue实现面板拖拽

Vue 实现面板拖拽的方法 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 在 Vue 模板中为元素添加 dra…

css表格的制作方法

css表格的制作方法

表格基础结构 使用HTML的<table>标签创建表格框架,搭配<tr>定义行,<td>定义单元格。例如: <table> <tr>…

vue实现表格编辑

vue实现表格编辑

Vue 实现表格编辑的方法 在 Vue 中实现表格编辑功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定数据 通过 v-model 绑定表格数据,结合 v-for 动态渲染…