当前位置:首页 > VUE

vue表格实现单选框

2026-03-06 19:00:54VUE

Vue 表格实现单选框的方法

使用 el-tableel-radio 组件

在 Vue 项目中,结合 Element UI 的 el-tableel-radio 组件可以轻松实现表格中的单选框功能。以下是一个完整的实现示例:

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column label="选择" width="80">
      <template #default="{ row }">
        <el-radio v-model="selectedRow" :label="row.id">{{ '' }}</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 {
      selectedRow: null,
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 },
        { id: 3, name: '王五', age: 28 }
      ]
    }
  }
}
</script>

自定义单选逻辑

如果需要更灵活的控制,可以自定义单选逻辑:

<template>
  <el-table :data="tableData" style="width: 100%" @row-click="handleRowClick">
    <el-table-column label="选择" width="80">
      <template #default="{ row }">
        <el-radio :checked="selectedRow === row.id"></el-radio>
      </template>
    </el-table-column>
    <!-- 其他列 -->
  </el-table>
</template>

<script>
export default {
  methods: {
    handleRowClick(row) {
      this.selectedRow = row.id
    }
  }
}
</script>

使用纯 CSS 实现单选样式

如果不依赖 Element UI,可以使用纯 CSS 实现表格单选效果:

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

<style>
.radio-table tr {
  cursor: pointer;
}
.radio-table tr.selected {
  background-color: #f5f7fa;
}
</style>

响应式单选实现

对于需要响应式处理的场景,可以添加计算属性:

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

这样可以通过 selectedItem 访问当前选中的行数据。

vue表格实现单选框

注意事项

  • 确保每行数据有唯一标识符(如 id)
  • 单选逻辑应清晰,避免与多选混淆
  • 考虑添加空状态处理,当没有选中项时的显示
  • 移动端适配可能需要调整点击区域大小

以上方法可根据具体项目需求选择或组合使用,Element UI 方案适合快速开发,自定义方案则提供更多灵活性。

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

相关文章

vue实现表格多行修改

vue实现表格多行修改

实现表格多行修改的方法 数据绑定与表格渲染 使用v-model绑定表格数据到Vue实例的data属性。通过v-for循环渲染表格行,并为每行数据添加编辑状态标识。 <template>…

网页表格制作css代码

网页表格制作css代码

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

用vue实现表格

用vue实现表格

Vue 表格实现方法 基础表格实现 使用 Vue 的 v-for 指令可以轻松渲染表格数据。准备一个数据数组,在模板中用 v-for 循环渲染。 <template> <tab…

vue实现合并表格

vue实现合并表格

vue实现合并表格的方法 使用Vue实现表格合并功能可以通过多种方式完成,常见方法包括自定义渲染、利用第三方库或手动处理数据。以下是几种典型实现方案: 使用Element UI的table组件实现合…

vue实现表格修改

vue实现表格修改

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

vue 实现tab表格

vue 实现tab表格

实现 Tab 表格的基本思路 在 Vue 中实现 Tab 表格功能,通常需要结合 v-for 动态渲染表格内容,并通过 v-if 或 v-show 控制不同 Tab 的显示切换。核心逻辑是通过数据驱动…