当前位置:首页 > VUE

vue实现表格拖拽教程

2026-02-25 00:50:58VUE

Vue 表格拖拽实现方法

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

npm install vuedraggable
# 或
yarn add vuedraggable

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

<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 属性实现表格间拖拽:

<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>

注意事项

vue实现表格拖拽教程

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

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

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

相关文章

国外vue实现表格控件

国外vue实现表格控件

Vue 表格控件实现方案 使用开源组件库(推荐) Element UI、Vuetify、Ant Design Vue 等主流库提供成熟的表格组件,支持排序、分页、筛选等功能。 Element UI…

vue实现拖拽计算器

vue实现拖拽计算器

Vue实现拖拽计算器的步骤 创建Vue项目 使用Vue CLI创建一个新项目,确保已安装Vue和必要的依赖项。通过命令行初始化项目并安装依赖。 vue create drag-calculator…

vue 实现拖拽

vue 实现拖拽

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 dragg…

vue element实现表格

vue element实现表格

Vue + Element UI 实现表格 Element UI 提供了强大的表格组件 el-table,结合 Vue 可以快速实现数据展示、排序、筛选等功能。 基础表格实现 安装 Element…

vue实现拖拽放置

vue实现拖拽放置

Vue 实现拖拽放置功能 拖拽放置功能可以通过 Vue 的指令或第三方库实现。以下是两种常见的方法: 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 dragga…

jquery拖拽

jquery拖拽

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