当前位置:首页 > VUE

vue实现全选 单选

2026-02-18 04:16:35VUE

Vue实现全选与单选功能

全选与单选是表格或列表操作中的常见需求,以下提供两种实现方式,分别基于选项数组管理和组件封装。

基于选项数组管理

数据准备 在Vue组件的datasetup中定义选项列表和选中状态:

vue实现全选 单选

data() {
  return {
    items: [
      { id: 1, name: '选项1' },
      { id: 2, name: '选项2' },
      // 更多选项...
    ],
    selectedItems: [] // 存储选中项的id
  }
}

单选实现 通过v-model绑定单个复选框:

<div v-for="item in items" :key="item.id">
  <input 
    type="checkbox" 
    :value="item.id" 
    v-model="selectedItems"
  >
  {{ item.name }}
</div>

全选实现 计算属性判断是否全选,方法切换全选状态:

vue实现全选 单选

computed: {
  isAllSelected: {
    get() {
      return this.selectedItems.length === this.items.length
    },
    set(value) {
      this.selectedItems = value 
        ? this.items.map(item => item.id) 
        : []
    }
  }
}
<input type="checkbox" v-model="isAllSelected"> 全选

使用组件封装(推荐)

封装CheckboxGroup组件

<template>
  <div>
    <checkbox v-model="selectAll">全选</checkbox>
    <checkbox 
      v-for="item in items" 
      :key="item.id" 
      v-model="selectedItems" 
      :value="item.id"
    >
      {{ item.name }}
    </checkbox>
  </div>
</template>

<script>
export default {
  props: ['items'],
  data() {
    return { selectedItems: [] }
  },
  computed: {
    selectAll: {
      get() {
        return this.selectedItems.length === this.items.length
      },
      set(val) {
        this.selectedItems = val ? [...this.items.map(i => i.id)] : []
      }
    }
  }
}
</script>

使用组件

<checkbox-group :items="itemList" @change="handleSelectionChange" />

注意事项

  • 性能优化:当选项数量过大时,使用v-memo或虚拟滚动优化渲染
  • 深层响应:若选项嵌套层级深,确保使用reactiveVue.set保持响应性
  • 多页全选:结合分页时需额外处理服务端全选逻辑

两种方式均可实现功能,组件化方案更适合复杂场景下的复用。实际开发中可根据项目规模选择合适方案。

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

相关文章

vue实现div单选

vue实现div单选

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

vue实现全选

vue实现全选

Vue 实现全选功能 全选功能通常用于表格或列表中,允许用户一键选择所有项目。以下是几种实现方式: 使用 v-model 和计算属性 在数据中维护一个数组存储选中项的 ID,通过计算属性实现全选逻…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

vue 实现表格单选

vue 实现表格单选

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

vue实现商品全选

vue实现商品全选

实现全选功能的基本思路 在Vue中实现商品全选功能,通常需要维护一个商品列表数据和一个选中状态数组。通过计算属性判断是否全选,通过方法控制全选或取消全选。 定义数据模型 data() { re…

vue实现多选 全选

vue实现多选 全选

实现多选和全选功能 在Vue中实现多选和全选功能可以通过以下方式完成。假设有一个列表数据,需要实现勾选部分项或一键全选。 数据准备 定义一个数据列表和选中项的数组,以及全选状态。 data()…