当前位置:首页 > VUE

vue实现表格的单选

2026-01-22 02:23:08VUE

Vue 实现表格单选功能

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

使用 v-model 绑定选中项

通过 v-model 绑定一个变量来记录当前选中的行数据。在表格的每一行添加单选按钮或点击事件来更新选中状态。

<template>
  <table>
    <thead>
      <tr>
        <th>选择</th>
        <th>姓名</th>
        <th>年龄</th>
      </tr>
    </thead>
    <tbody>
      <tr 
        v-for="item in tableData" 
        :key="item.id"
        @click="selectRow(item)"
        :class="{ 'selected': selectedItem === item }"
      >
        <td>
          <input 
            type="radio" 
            :checked="selectedItem === item"
            @click.stop="selectRow(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 },
        { id: 3, name: '王五', age: 28 }
      ],
      selectedItem: null
    };
  },
  methods: {
    selectRow(item) {
      this.selectedItem = item;
    }
  }
};
</script>

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

通过计算属性判断选中状态

利用计算属性或方法动态判断当前行是否被选中,减少模板中的逻辑。

<template>
  <table>
    <thead>
      <tr>
        <th>选择</th>
        <th>姓名</th>
        <th>年龄</th>
      </tr>
    </thead>
    <tbody>
      <tr 
        v-for="item in tableData" 
        :key="item.id"
        @click="selectRow(item)"
        :class="{ 'selected': isSelected(item) }"
      >
        <td>
          <input 
            type="radio" 
            :checked="isSelected(item)"
            @click.stop="selectRow(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 },
        { id: 3, name: '王五', age: 28 }
      ],
      selectedItem: null
    };
  },
  methods: {
    selectRow(item) {
      this.selectedItem = item;
    },
    isSelected(item) {
      return this.selectedItem === item;
    }
  }
};
</script>

使用第三方表格组件

如果使用 Element UI 或 Ant Design Vue 等第三方组件库,可以更方便地实现单选功能。以下是 Element UI 的示例:

<template>
  <el-table
    :data="tableData"
    @row-click="handleRowClick"
    highlight-current-row
  >
    <el-table-column label="姓名" prop="name"></el-table-column>
    <el-table-column label="年龄" prop="age"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 },
        { id: 3, name: '王五', age: 28 }
      ]
    };
  },
  methods: {
    handleRowClick(row) {
      console.log('选中行:', row);
    }
  }
};
</script>

关键点总结

  • 使用 v-model 或变量绑定选中状态。
  • 通过点击事件或单选按钮更新选中项。
  • 高亮选中行可以通过 CSS 或组件库内置功能实现。
  • 第三方组件库(如 Element UI)提供更便捷的单选支持。

vue实现表格的单选

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

相关文章

vue实现表格复选

vue实现表格复选

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

vue实现div单选

vue实现div单选

Vue 实现 div 单选 在 Vue 中实现 div 单选可以通过 v-model 结合 v-for 和事件绑定来完成。以下是具体实现方法: 模板部分 <template>…

用css制作表格

用css制作表格

使用CSS制作表格 CSS可以用来样式化HTML表格,使其更具视觉吸引力和功能性。以下是几种常见的方法: 基础表格样式 通过CSS可以调整表格的边框、间距和颜色: <table>…

怎么制作css表格

怎么制作css表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,CSS用于控制样式。以下是一个基础示例: <table class="styled-table"&g…

vue日历表格实现

vue日历表格实现

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

vue表格实现单选框

vue表格实现单选框

Vue 表格实现单选框的方法 在 Vue 中实现表格单选框功能,可以通过结合 el-table(Element UI)或原生表格与 Vue 的数据绑定特性完成。以下是几种常见实现方式: 使用 E…