当前位置:首页 > 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实现考试多选功能 数据绑定与选项渲染 使用v-model绑定用户选择的答案数组,结合v-for循环渲染选项列表。示例代码: <template> <div>…

vue实现表格上传头像

vue实现表格上传头像

实现表格上传头像功能 在Vue中实现表格上传头像功能,可以通过以下步骤完成。这里假设使用Element UI作为UI框架,但方法同样适用于其他UI库或原生实现。 安装必要依赖 确保项目中已安装Ele…

uniapp 表格导入

uniapp 表格导入

uniapp 表格导入的实现方法 使用 uni.chooseFile 选择文件 在 uniapp 中,可以通过 uni.chooseFile API 让用户选择本地文件。该 API 支持多平台,包括…

vue实现表格导入

vue实现表格导入

Vue 实现表格导入的方法 使用 Element UI 的 Upload 组件 Element UI 提供了 el-upload 组件,可以方便地实现文件上传功能。结合 xlsx 库解析 Excel…

vue实现表格合并

vue实现表格合并

实现表格合并的方法 在Vue中实现表格合并通常涉及对表格数据的处理和单元格属性的动态绑定。以下是几种常见的方法: 使用rowspan和colspan属性 通过计算需要合并的行或列数,动态绑定rows…

vue 实现页面 表格

vue 实现页面 表格

Vue 实现页面表格的方法 Vue 提供了多种方式实现表格功能,可以根据需求选择不同的方案。以下是常见的实现方法: 使用原生 HTML 表格 通过 Vue 的模板语法直接渲染表格数据: <t…