当前位置:首页 > VUE

vue实现表格多选效果

2026-02-24 03:24:18VUE

实现表格多选的基础方法

使用 Vue 的 v-model 绑定到复选框,结合 v-for 渲染表格数据。在数据中增加 selected 属性标记选中状态。

<template>
  <table>
    <thead>
      <tr>
        <th><input type="checkbox" v-model="selectAll"></th>
        <th>ID</th>
        <th>Name</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="item in tableData" :key="item.id">
        <td><input type="checkbox" v-model="item.selected"></td>
        <td>{{ item.id }}</td>
        <td>{{ item.name }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: 'Item 1', selected: false },
        { id: 2, name: 'Item 2', selected: false }
      ],
      selectAll: false
    }
  }
}
</script>

全选/反选功能实现

通过计算属性或监听器实现全选逻辑。当点击全选复选框时,同步所有行的选中状态。

watch: {
  selectAll(newVal) {
    this.tableData.forEach(item => {
      item.selected = newVal
    })
  }
}

获取选中项数据

添加方法获取当前选中的数据,通过过滤 selectedtrue 的项。

methods: {
  getSelectedItems() {
    return this.tableData.filter(item => item.selected)
  }
}

使用第三方组件库优化

Element UI 或 Ant Design Vue 等库提供现成的多选表格组件。

<!-- Element UI 示例 -->
<el-table
  :data="tableData"
  @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="55"></el-table-column>
  <el-table-column prop="id" label="ID"></el-table-column>
</el-table>

<script>
export default {
  methods: {
    handleSelectionChange(val) {
      this.selectedItems = val
    }
  }
}
</script>

性能优化建议

对于大数据量表格,使用虚拟滚动或分页加载。避免直接绑定大量数据的响应式属性,可采用非响应式数据配合手动更新。

vue实现表格多选效果

// 使用 Object.freeze 冻结非响应式数据
this.tableData = Object.freeze(largeDataArray)

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

相关文章

css表格表单制作

css表格表单制作

CSS表格制作 使用CSS创建表格主要涉及<table>标签及其子元素的样式控制。以下是一个基础示例: <table class="styled-table"> <…

css表格制作表格

css表格制作表格

CSS 表格制作方法 基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<td>(单元格)和<th>(表头)标签: &l…

css表格制作

css表格制作

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

使用vue实现表格

使用vue实现表格

使用 Vue 实现表格 Vue.js 提供了灵活的方式来实现表格功能,可以通过组合 v-for 指令和动态数据绑定快速构建表格。以下是几种常见的实现方法: 基础表格实现 通过 v-for 遍历数组数…

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,包括边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

vue实现li多选

vue实现li多选

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