当前位置:首页 > VUE

vue 实现表格单选

2026-03-07 20:23:08VUE

实现表格单选的方法

在 Vue 中实现表格单选功能可以通过多种方式完成,以下是几种常见的实现方法:

使用 v-model 绑定选中项

通过 v-model 绑定一个变量来存储当前选中的行数据,结合 @click 事件实现单选逻辑。

<template>
  <table>
    <tr 
      v-for="item in tableData" 
      :key="item.id"
      @click="selectedRow = item"
      :class="{ 'selected': selectedRow === item }"
    >
      <td>{{ item.name }}</td>
      <td>{{ item.age }}</td>
    </tr>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ],
      selectedRow: null
    }
  }
}
</script>

<style>
.selected {
  background-color: #f0f0f0;
}
</style>

使用 el-table 组件(Element UI)

如果使用 Element UI 的 el-table 组件,可以直接利用其内置的单选功能。

<template>
  <el-table
    :data="tableData"
    highlight-current-row
    @current-change="handleCurrentChange"
  >
    <el-table-column prop="name" label="Name"></el-table-column>
    <el-table-column prop="age" label="Age"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ],
      currentRow: null
    }
  },
  methods: {
    handleCurrentChange(val) {
      this.currentRow = val;
    }
  }
}
</script>

使用自定义单选按钮

通过添加单选按钮列,实现更直观的单选交互。

<template>
  <table>
    <tr v-for="item in tableData" :key="item.id">
      <td>
        <input 
          type="radio" 
          :name="'tableRadio'" 
          :value="item.id"
          v-model="selectedId"
        >
      </td>
      <td>{{ item.name }}</td>
      <td>{{ item.age }}</td>
    </tr>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ],
      selectedId: null
    }
  }
}
</script>

使用计算属性获取选中行

通过计算属性动态获取当前选中的行数据,方便后续操作。

vue 实现表格单选

<template>
  <table>
    <tr 
      v-for="item in tableData" 
      :key="item.id"
      @click="selectedId = item.id"
      :class="{ 'selected': selectedId === item.id }"
    >
      <td>{{ item.name }}</td>
      <td>{{ item.age }}</td>
    </tr>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ],
      selectedId: null
    }
  },
  computed: {
    selectedRow() {
      return this.tableData.find(item => item.id === this.selectedId);
    }
  }
}
</script>

注意事项

  • 如果表格数据是动态加载的,需要在数据更新后重置选中状态。
  • 高亮样式可以通过 CSS 自定义,确保用户体验一致。
  • 对于大型表格,考虑性能优化,避免不必要的渲染。

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

相关文章

vue日历表格实现

vue日历表格实现

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

vue实现表格内容

vue实现表格内容

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

vue实现表格修改

vue实现表格修改

Vue 实现表格修改的方法 使用 v-model 绑定数据 在 Vue 中可以通过 v-model 实现双向数据绑定,适用于表格单元格的编辑。 为表格的每个单元格绑定 v-model,动态修改数据。…

vue实现表格输出

vue实现表格输出

Vue 实现表格输出的方法 使用原生表格标签 在 Vue 模板中可以直接使用 HTML 原生表格标签(<table>、<tr>、<td>等)渲染数据。通过 v-fo…

vue实现表格合并

vue实现表格合并

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

vue实现树形表格

vue实现树形表格

实现树形表格的基本思路 树形表格的实现通常需要递归组件来展示层级数据,并通过展开/折叠功能控制子节点的显示。Vue的组件递归特性非常适合处理这种嵌套结构。 数据结构的准备 树形表格的数据通常是一个嵌…