或第三方组件库(如Element UI、Ant Design Vue等)。核心逻辑是通过v-m…">
当前位置:首页 > VUE

vue表格实现单选框

2026-01-07 05:16:41VUE

实现单选框的基本思路

在Vue中实现表格单选框通常结合<input type="radio">或第三方组件库(如Element UI、Ant Design Vue等)。核心逻辑是通过v-model绑定选中状态,并通过遍历数据动态渲染表格行。

使用原生HTML实现

假设表格数据为tableData,选中项绑定到selectedItem

<template>
  <table>
    <thead>
      <tr>
        <th>选择</th>
        <th>姓名</th>
        <th>年龄</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="item in tableData" :key="item.id">
        <td>
          <input 
            type="radio" 
            :value="item.id" 
            v-model="selectedId"
            @change="handleSelect(item)"
          >
        </td>
        <td>{{ item.name }}</td>
        <td>{{ item.age }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ],
      selectedId: null
    };
  },
  methods: {
    handleSelect(item) {
      console.log('选中项:', item);
    }
  }
};
</script>

使用Element UI实现

若使用Element UI的el-table组件:

vue表格实现单选框

<template>
  <el-table :data="tableData" @row-click="handleRowClick">
    <el-table-column width="50">
      <template #default="{ row }">
        <el-radio 
          v-model="selectedId" 
          :label="row.id"
          @change="handleSelect(row)"
        ></el-radio>
      </template>
    </el-table-column>
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ],
      selectedId: null
    };
  },
  methods: {
    handleSelect(item) {
      console.log('选中项:', item);
    },
    handleRowClick(row) {
      this.selectedId = row.id;
    }
  }
};
</script>

关键注意事项

  • 唯一标识:确保每行数据有唯一id,用于v-model绑定。
  • 性能优化:大数据量时建议使用虚拟滚动(如el-table内置优化)。
  • 样式调整:通过CSS调整单选框对齐或间距,例如:
    .el-radio { margin: 0; vertical-align: middle; }

扩展功能

  • 默认选中:初始化时设置selectedId为某一项的id
  • 禁用选项:通过:disabled条件控制某些行不可选:
    <el-radio :disabled="row.disable" ...></el-radio>

以上方案可根据实际需求组合或调整,核心逻辑是通过响应式数据管理选中状态。

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

相关文章

国外vue实现表格控件

国外vue实现表格控件

以下是国外流行的 Vue 表格控件实现方案及特点,供参考: vue-good-table 基于 Vue 2/3 的轻量级表格组件,支持排序、分页、筛选等功能。 安装方式: npm instal…

css好看的表格制作

css好看的表格制作

使用CSS制作美观表格的方法 边框与间距优化 通过border-collapse属性合并边框,避免双边框效果。设置padding增加单元格内边距,提升可读性。 table { border-…

vue实现简单表格

vue实现简单表格

使用 Vue 实现简单表格 Vue 提供了多种方式实现表格功能,以下是基于 Vue 3 的两种常见方法: 基础表格实现 通过 v-for 指令循环渲染表格数据: <template&…

用css制作表格

用css制作表格

使用CSS制作表格 基础表格结构 HTML中表格由<table>、<tr>(行)、<th>(表头)和<td>(单元格)组成。基础结构如下: <t…

vue实现表格内容

vue实现表格内容

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

vue实现表格修改

vue实现表格修改

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