当前位置:首页 > VUE

vue按钮实现单选全选

2026-01-23 00:24:42VUE

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

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

单选功能实现

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

    vue按钮实现单选全选

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

    vue按钮实现单选全选

    <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中实现单选功能可以通过v-model绑定数据和v-for循环渲染选项。以下是一个基本示例: <template> <div> <…

vue 实现单选

vue 实现单选

实现单选功能的方法 在Vue中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用v-model绑定单选按钮 通过v-model可以轻松实现单选功能。将v-model绑定到一个变量,…

vue实现div单选

vue实现div单选

实现 div 单选功能 在 Vue 中实现 div 单选功能可以通过多种方式完成。以下是几种常见的实现方法: 使用 v-model 和计算属性 通过 v-model 绑定一个变量,结合计算属性实现…

vue实现图片单选

vue实现图片单选

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

jquery 单选

jquery 单选

jQuery 单选按钮操作 在 jQuery 中,操作单选按钮(Radio Button)通常涉及选中状态、取值和事件绑定。以下是常见操作示例: 获取选中的单选按钮值 通过 :checked 选择…

vue实现选择全选

vue实现选择全选

Vue 实现全选功能 全选功能通常用于表格或列表,允许用户一键选中所有选项。以下是基于 Vue 的实现方法: 基础实现方式 <template> <div> &l…