当前位置:首页 > VUE

vue表格实现多选

2026-03-10 10:46:02VUE

实现多选表格的基本方法

在Vue中实现表格多选功能,可以通过结合el-table组件(Element UI)或手动实现复选框逻辑完成。

安装Element UI(若未安装):

npm install element-ui

引入组件并绑定多选功能:

<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    @selection-change="handleSelectionChange">
    <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: [{ name: '张三' }, { name: '李四' }],
      selectedItems: []
    };
  },
  methods: {
    handleSelectionChange(val) {
      this.selectedItems = val;
    }
  }
};
</script>

自定义复选框实现

若需自定义样式或逻辑,可通过手动绑定v-model实现:

<template>
  <table>
    <tr v-for="(item, index) in tableData" :key="index">
      <td><input type="checkbox" v-model="selectedItems" :value="item.id"></td>
      <td>{{ item.name }}</td>
    </tr>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{ id: 1, name: '王五' }, { id: 2, name: '赵六' }],
      selectedItems: []
    };
  }
};
</script>

全选/反选功能

添加全选按钮时,需监听全选状态变化:

<template>
  <el-checkbox v-model="selectAll" @change="toggleAllSelection">全选</el-checkbox>
  <el-table ref="multipleTable" :data="tableData">
    <el-table-column type="selection" width="55"></el-table-column>
  </el-table>
</template>

<script>
export default {
  methods: {
    toggleAllSelection(val) {
      val ? this.$refs.multipleTable.toggleAllSelection() 
          : this.$refs.multipleTable.clearSelection();
    }
  }
};
</script>

数据提交与验证

提交选中的数据时,需检查是否已选择条目:

methods: {
  submitData() {
    if (this.selectedItems.length === 0) {
      alert('请至少选择一项');
      return;
    }
    console.log('已选数据:', this.selectedItems);
  }
}

性能优化建议

对于大数据量表格,建议启用分页或虚拟滚动:

vue表格实现多选

  • 分页:通过current-pagepage-size控制显示数据量
  • 虚拟滚动:使用vue-virtual-scroller等库减少DOM节点
<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[10, 20, 50]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next">
</el-pagination>

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

相关文章

vue实现简单表格

vue实现简单表格

Vue 实现简单表格的方法 使用原生 HTML 表格 在 Vue 模板中可以直接使用 HTML 原生表格标签,通过 v-for 动态渲染数据: <template> <tabl…

vue日历表格实现

vue日历表格实现

实现Vue日历表格的基本步骤 使用Vue实现日历表格需要处理日期数据生成、渲染和交互逻辑。以下是核心实现方法: 安装依赖(可选) 若需复杂功能可引入date-fns或dayjs等日期库: npm…

vue表格组件实现

vue表格组件实现

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

vue 实现跨行表格

vue 实现跨行表格

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

vue 实现多选功能

vue 实现多选功能

Vue 实现多选功能的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。适用于复选框组(checkbox)或下拉多选(select multi…

vue实现表格透明

vue实现表格透明

实现表格透明的方法 在Vue中实现表格透明效果,可以通过CSS样式调整表格的背景透明度。以下是几种常见的方法: 设置表格背景透明度 通过CSS的background-color属性配合rgba()…