当前位置:首页 > 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方法恢复选中状态。

vue表格实现多选

<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属性控制行是否可选,实现条件选择。

vue表格实现多选

<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条数据时可能出现性能问题,可考虑以下方案:

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

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

相关文章

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead&g…

如何实现vue表格联动

如何实现vue表格联动

实现 Vue 表格联动的方法 数据绑定与响应式更新 通过 Vue 的响应式特性,将多个表格的数据绑定到同一个数据源或计算属性。当一个表格的数据发生变化时,另一个表格会自动更新。例如: data()…

css好看的表格制作

css好看的表格制作

使用CSS制作美观表格的方法 边框与间距优化 通过border-collapse属性合并边框,避免双边框效果。设置padding增加单元格内边距,提升可读性。 table { border-…

css表格制作

css表格制作

CSS表格制作方法 使用CSS创建表格可以通过多种方式实现,以下是常见的几种方法: 使用HTML原生表格标签结合CSS样式 <table class="styled-table">…

vue图片实现多选

vue图片实现多选

Vue 图片多选实现方法 在 Vue 中实现图片多选功能可以通过以下几种方式完成,具体取决于项目需求和复杂度。 使用 v-model 和数组存储选中状态 通过 v-model 绑定一个数组来记录选中…

vue循环实现多选

vue循环实现多选

Vue循环实现多选的方法 在Vue中实现多选功能,可以通过v-for循环渲染选项,结合v-model绑定数组来记录选中的值。以下是具体实现方式: 基础实现方案 数据准备 在组件的data中定义选项…