当前位置:首页 > VUE

vue按钮实现单选全选

2026-01-23 00:24:42VUE

Vue 按钮实现单选与全选功能

在 Vue 中实现单选和全选功能,可以通过以下方法完成:

单选功能实现

  1. 数据准备
    定义一个数组 items 存储选项数据,并为每个选项添加 selected 属性控制选中状态:

    data() {
      return {
        items: [
          { id: 1, name: '选项1', selected: false },
          { id: 2, name: '选项2', selected: false },
          { id: 3, name: '选项3', selected: false }
        ]
      }
    }
  2. 单选逻辑
    通过 v-model 绑定单选按钮,或通过点击事件切换选中状态:

    <div v-for="item in items" :key="item.id">
      <input type="checkbox" v-model="item.selected" @change="handleSingleSelect(item)">
      {{ item.name }}
    </div>
    methods: {
      handleSingleSelect(item) {
        this.items.forEach(i => {
          if (i.id !== item.id) i.selected = false;
        });
      }
    }

全选功能实现

  1. 全选按钮绑定
    添加一个全选按钮,通过计算属性判断是否全选:

    <input type="checkbox" v-model="allSelected" @change="handleSelectAll">
    全选
  2. 全选逻辑
    使用计算属性和方法实现全选与反选:

    computed: {
      allSelected: {
        get() {
          return this.items.every(item => item.selected);
        },
        set(value) {
          this.items.forEach(item => item.selected = value);
        }
      }
    },
    methods: {
      handleSelectAll() {
        this.allSelected = !this.allSelected;
      }
    }

完整示例代码

<template>
  <div>
    <div>
      <input type="checkbox" v-model="allSelected" @change="handleSelectAll">
      全选
    </div>
    <div v-for="item in items" :key="item.id">
      <input type="checkbox" v-model="item.selected" @change="handleSingleSelect(item)">
      {{ item.name }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '选项1', selected: false },
        { id: 2, name: '选项2', selected: false },
        { id: 3, name: '选项3', selected: false }
      ]
    }
  },
  computed: {
    allSelected: {
      get() {
        return this.items.every(item => item.selected);
      },
      set(value) {
        this.items.forEach(item => item.selected = value);
      }
    }
  },
  methods: {
    handleSingleSelect(item) {
      this.items.forEach(i => {
        if (i.id !== item.id) i.selected = false;
      });
    },
    handleSelectAll() {
      this.allSelected = !this.allSelected;
    }
  }
}
</script>

关键点说明

  • 单选:通过遍历数组取消其他选项的选中状态,确保每次仅选中一项。
  • 全选:利用计算属性的 getset 方法,实现全选与反选功能。
  • 双向绑定v-model 简化了状态管理,直接绑定到数据属性。

vue按钮实现单选全选

标签: 全选单选
分享给朋友:

相关文章

vue如何实现单选

vue如何实现单选

Vue 实现单选的方法 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定到同一个变量,确保同一时间只有一个…

vue实现 单选

vue实现 单选

实现 Vue 单选功能 在 Vue 中实现单选功能可以通过多种方式完成,常见的有使用原生 HTML 的 <input type="radio"> 结合 Vue 的数据绑定,或使用第三方 U…

vue 实现表格单选

vue 实现表格单选

实现表格单选的基本思路 在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class或:style绑定…

vue实现全选下载

vue实现全选下载

Vue 实现全选下载功能 要实现 Vue 中的全选下载功能,需要结合前端文件选择和下载逻辑。以下是一个完整的实现方案: 全选逻辑实现 在 Vue 组件中声明数据和方法: data() {…

vue实现图片单选

vue实现图片单选

Vue 实现图片单选功能 在 Vue 中实现图片单选功能可以通过多种方式完成,以下是两种常见的实现方法: 方法一:使用 v-model 和单选按钮 通过将单选按钮与图片绑定,利用 v-model…

vue表格实现单选

vue表格实现单选

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