当前位置:首页 > VUE

vue 实现表格单选

2026-01-08 05:52:34VUE

实现表格单选的方法

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

使用v-model绑定选中项

通过v-model绑定一个变量来记录当前选中的行数据。当用户点击某一行时,更新该变量的值。

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

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ],
      selectedItem: null
    }
  }
}
</script>

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

使用radio按钮实现单选

在表格的每一行添加radio按钮,通过v-model绑定同一个变量实现单选效果。

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

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

使用第三方表格组件实现

如果使用Element UI等UI框架,可以直接利用其提供的单选功能。

<template>
  <el-table
    :data="tableData"
    @current-change="handleCurrentChange"
    highlight-current-row>
    <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 }
      ],
      currentRow: null
    }
  },
  methods: {
    handleCurrentChange(val) {
      this.currentRow = val;
    }
  }
}
</script>

自定义单选逻辑

通过维护一个selectedId变量,在点击时更新该变量实现单选。

<template>
  <table>
    <tr v-for="item in tableData" :key="item.id" 
        @click="selectItem(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: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ],
      selectedId: null
    }
  },
  methods: {
    selectItem(id) {
      this.selectedId = id;
    }
  }
}
</script>

注意事项

  • 确保为每行数据设置唯一的key值
  • 考虑添加样式反馈以提升用户体验
  • 根据项目需求选择合适的方法,简单项目可使用原生实现,复杂项目可考虑UI框架
  • 单选状态应存储在组件data中,便于后续操作使用

vue 实现表格单选

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

相关文章

vue实现表格复选

vue实现表格复选

实现表格复选的基本思路 在Vue中实现表格复选功能,通常需要结合v-model绑定选中状态,监听复选框变化事件,以及维护一个选中项的数组。以下是具体实现方法: 基础实现步骤 数据准备 定义表格数据和…

vue表格实现单选

vue表格实现单选

实现 Vue 表格单选功能 使用 v-model 绑定选中状态 在表格的每一行添加单选按钮或点击行触发选中,通过 v-model 绑定一个变量存储当前选中行的唯一标识(如 id)。 示例代码:…

vue 实现跨行表格

vue 实现跨行表格

实现跨行表格的方法 在Vue中实现跨行表格可以通过多种方式完成,以下是几种常见的方法: 使用HTML原生表格 HTML原生表格支持rowspan属性,可以直接在Vue模板中使用: <ta…

vue 实现图片单选

vue 实现图片单选

Vue 实现图片单选功能 在 Vue 中实现图片单选功能,可以通过结合 v-model 和自定义事件来实现。以下是具体实现方法: 方法一:使用 v-model 和计算属性 创建一个 Vue 组件,包…

vue表格实现导出

vue表格实现导出

使用 vue-json-excel 插件 安装插件: npm install vue-json-excel --save 在组件中引入并注册: import JsonExcel from 'v…

vue实现合并表格

vue实现合并表格

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