当前位置:首页 > VUE

vue表格实现多选

2026-02-18 21:23:08VUE

实现多选表格的基础方法

使用el-table组件配合type="selection"的列即可实现多选功能。需设置row-key确保行唯一标识,通过v-model绑定选中数据。

<template>
  <el-table
    :data="tableData"
    ref="multipleTable"
    @selection-change="handleSelectionChange"
    row-key="id"
  >
    <el-table-column type="selection" width="55"></el-table-column>
    <el-table-column prop="name" label="姓名"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三' },
        { id: 2, name: '李四' }
      ],
      selectedRows: []
    }
  },
  methods: {
    handleSelectionChange(val) {
      this.selectedRows = val
    }
  }
}
</script>

跨页多选实现

需要配合分页组件保存已选项。通过reserve-selection属性保持选项跨页记忆,使用toggleRowSelection方法恢复选中状态。

<el-table
  :data="pagedData"
  @select="handleSelect"
  @select-all="handleSelectAll"
>
  <el-table-column 
    type="selection" 
    reserve-selection
    width="55">
  </el-table-column>
</el-table>

<script>
export default {
  methods: {
    handleSelect(selection, row) {
      this.$refs.multipleTable.toggleRowSelection(row, true)
    },
    handleSelectAll(selection) {
      selection.forEach(row => {
        this.$refs.multipleTable.toggleRowSelection(row, true)
      })
    }
  }
}
</script>

自定义选择逻辑

通过selectable属性控制行是否可选,实现条件选择。

<el-table-column
  type="selection"
  :selectable="checkSelectable"
>
</el-table-column>

<script>
export default {
  methods: {
    checkSelectable(row, index) {
      return row.status === 'active' // 仅允许active状态的行被选中
    }
  }
}
</script>

全选与反选功能

通过表格实例的方法实现程序化选择控制。

methods: {
  toggleAllSelection() {
    this.$refs.multipleTable.toggleAllSelection()
  },
  clearSelection() {
    this.$refs.multipleTable.clearSelection()
  }
}

性能优化建议

对于大数据量场景,建议采用懒加载或虚拟滚动方案。Element UI的表格在渲染超过1000条数据时可能出现性能问题,可考虑以下方案:

vue表格实现多选

  • 使用分页加载
  • 实现虚拟滚动表格组件
  • 采用vxe-table等高性能表格库替代
// 虚拟滚动示例(需配合第三方库)
import { VirtualTable } from 'vue-virtual-scroll'
components: {
  VirtualTable
}

标签: 多选表格
分享给朋友:

相关文章

vue实现表格

vue实现表格

Vue实现表格的方法 在Vue中实现表格可以通过多种方式完成,包括使用原生HTML表格、第三方组件库或自定义组件。以下是几种常见的方法: 使用原生HTML表格 在Vue模板中直接使用HTML的&l…

vue表格实现复选框

vue表格实现复选框

Vue表格实现复选框的方法 基础实现(使用v-model绑定数组) 在Vue中可以通过v-model绑定数组来实现复选框功能。以下是一个基础示例: <template> <ta…

vue实现li多选

vue实现li多选

Vue 实现列表多选功能 在 Vue 中实现列表(<li>)的多选功能可以通过多种方式完成。以下是几种常见的实现方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组…

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

表格制作css

表格制作css

CSS表格样式设计 基础表格样式 通过border-collapse合并边框,使表格更整洁。width控制整体宽度,text-align设置文字对齐方式。 table { border-coll…

vue实现树形表格

vue实现树形表格

实现树形表格的基本思路 树形表格的实现通常需要递归组件来展示层级数据,并通过展开/折叠功能控制子节点的显示。Vue的组件递归特性非常适合处理这种嵌套结构。 数据结构的准备 树形表格的数据通常是一个嵌…