当前位置:首页 > VUE

vue 实现表格单选

2026-01-14 03:48:13VUE

实现表格单选的基本思路

在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class:style绑定高亮样式。

基于Element UI的实现示例

假设使用Element UI的el-table组件,以下是一个完整的实现示例:

<template>
  <el-table
    :data="tableData"
    @row-click="handleRowClick"
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄',
        id: 1
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄',
        id: 2
      }],
      selectedRowId: null
    }
  },
  methods: {
    handleRowClick(row) {
      this.selectedRowId = row.id;
    }
  }
}
</script>

添加高亮样式

通过row-class-name属性实现选中行的高亮效果:

<el-table
  :data="tableData"
  @row-click="handleRowClick"
  :row-class-name="tableRowClassName"
  style="width: 100%">
  <!-- 列定义 -->
</el-table>
methods: {
  tableRowClassName({ row }) {
    return row.id === this.selectedRowId ? 'selected-row' : '';
  }
}
.el-table .selected-row {
  background-color: #f0f9eb;
}

使用计算属性优化

若需频繁访问选中行数据,可通过计算属性实现:

computed: {
  selectedRow() {
    return this.tableData.find(item => item.id === this.selectedRowId);
  }
}

纯Vue的实现方式(不依赖UI库)

对于原生HTML表格,可通过以下方式实现:

vue 实现表格单选

<table>
  <tr
    v-for="item in tableData"
    :key="item.id"
    @click="selectedRowId = item.id"
    :class="{ active: selectedRowId === item.id }">
    <td>{{ item.date }}</td>
    <td>{{ item.name }}</td>
    <td>{{ item.address }}</td>
  </tr>
</table>
.active {
  background-color: #42b983;
  color: white;
}

关键注意事项

  • 确保每行数据具有唯一标识符(如id
  • 高亮样式建议使用CSS伪类:hover增强用户体验
  • 对于大型表格,考虑使用v-once优化未选中行的渲染性能
  • 单选状态应存储在Vx(如Vuex)中(跨组件场景)

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

相关文章

怎么制作css表格

怎么制作css表格

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

css 制作表格

css 制作表格

CSS 制作表格的方法 使用 CSS 制作表格可以通过多种方式实现,包括原生 HTML 表格样式、Flexbox 布局或 Grid 布局。以下是几种常见的方法: 原生 HTML 表格样式 HTML…

h5实现表格样式

h5实现表格样式

实现H5表格样式的方法 使用HTML和CSS创建基础表格 在HTML中,表格通过<table>标签定义,配合<tr>(行)、<td>(单元格)和<th>…

css表格制作

css表格制作

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

vue实现表格内容

vue实现表格内容

Vue实现表格内容的方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签构建表格结构,通过v-for指令动态渲染数据。 <template> &…

css表格的制作方法

css表格的制作方法

表格基础结构 使用HTML的<table>标签创建表格框架,搭配<tr>定义行,<td>定义单元格。例如: <table> <tr>…