当前位置:首页 > 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 表格 最简单的表格可以通过 Vue 模板中的原生 HTML 表格元素实现: &l…

Vue实现级联多选

Vue实现级联多选

Vue实现级联多选的方法 使用Element UI的Cascader组件 Element UI提供了Cascader组件,支持级联选择功能。通过配置props属性可以自定义节点字段名,结合checkS…

怎么制作css表格

怎么制作css表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,CSS用于控制样式。以下是一个基础示例: <table class="styled-table">…

vue实现简单表格

vue实现简单表格

使用 Vue 实现简单表格 Vue 提供了多种方式实现表格功能,以下是基于 Vue 3 的两种常见方法: 基础表格实现 通过 v-for 指令循环渲染表格数据: <template&…

vue表格组件实现

vue表格组件实现

Vue表格组件实现 基础表格实现 使用el-table组件实现基础表格功能。安装Element UI后,引入el-table和el-table-column组件。 <template>…

vue实现表格追加

vue实现表格追加

实现表格数据追加的方法 在Vue中实现表格数据追加可以通过多种方式完成,主要涉及数据绑定和数组操作。以下是几种常见的方法: 数据绑定与v-for指令 通过v-for指令渲染表格数据,利用数组的co…