或第三方组件库(如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绑定选中状态,并通过遍历数据动态渲染表格行。

vue表格实现单选框

使用原生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组件:

<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 项目 使用 Vue CLI 或 Vite 初始化项目: npm init vue@latest student-table cd student-table npm install…

vue实现表格复选

vue实现表格复选

Vue实现表格复选的方法 基础实现 在Vue中实现表格复选功能可以通过v-model绑定复选框的状态,结合v-for循环渲染表格数据。以下是一个基础示例: <template> &l…

vue 实现表格单选

vue 实现表格单选

实现表格单选的方法 在Vue中实现表格单选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-model绑定选中项 通过v-model绑定一个变量来记录当前选中的行数据。当用户点击某一行时…

vue实现子表格

vue实现子表格

Vue 实现子表格的方法 在 Vue 中实现子表格可以通过多种方式完成,以下是几种常见的方法: 使用嵌套组件 创建一个父表格组件和一个子表格组件,通过 props 将数据传递给子表格组件。父表格的每…

css好看的表格制作

css好看的表格制作

CSS表格美化方法 边框与间距优化 使用border-collapse合并边框,避免双线边框。设置padding增加单元格内边距,提升可读性。 table { border-collapse:…

css 制作表格

css 制作表格

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