当前位置:首页 > 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 简化了状态管理,直接绑定到数据属性。

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

相关文章

jquery 全选

jquery 全选

jQuery 全选实现方法 使用jQuery实现全选功能通常涉及监听复选框的点击事件,并根据全选按钮的状态来设置其他复选框的状态。 HTML结构示例 <input type="che…

vue实现列表全选

vue实现列表全选

实现全选功能的基本思路 在Vue中实现列表全选功能,通常需要结合v-model和计算属性来管理选中状态。全选按钮的状态与列表中所有项的选中状态相互关联。 基础实现方法 准备一个数据列表和对应的选中状…

vue实现分页全选

vue实现分页全选

Vue 实现分页全选功能 分页全选功能通常用于表格或列表数据,允许用户跨页批量选择数据。以下是实现该功能的几种方法: 使用 Vuex 或 Pinia 管理选中状态 全局状态管理工具(如 Vuex 或…

vue实现多组全选

vue实现多组全选

Vue 实现多组全选功能 在 Vue 中实现多组全选功能通常涉及以下步骤: 数据准备 定义多组数据,每组包含多个选项和一个全选状态。 使用 v-model 绑定每个选项的选中状态。 全选逻辑 为…

vue实现列全选框

vue实现列全选框

实现全选框的基本逻辑 在Vue中实现表格列的全选框功能,需要结合v-model和计算属性来管理选中状态。全选框的状态应反映当前页所有行的选中情况,同时点击全选框应能切换所有行的选中状态。 &…

vue实现物品全选代码

vue实现物品全选代码

Vue实现物品全选功能 在Vue中实现物品全选功能通常需要结合复选框和数据绑定。以下是一个完整的实现示例,包含全选、反选以及单选逻辑。 基础实现代码 <template> <…