当前位置:首页 > VUE

vue实现全选 单选

2026-02-18 04:16:35VUE

Vue实现全选与单选功能

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

基于选项数组管理

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

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>

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

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>

使用组件

vue实现全选 单选

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

注意事项

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

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

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

相关文章

vue 实现表格单选

vue 实现表格单选

实现表格单选的方法 在Vue中实现表格单选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-model绑定选中项 通过v-model绑定一个变量来记录当前选中的行数据。当用户点击某一行时…

vue 实现组单选

vue 实现组单选

Vue 实现单选组 在 Vue 中实现单选组可以通过多种方式,以下是几种常见的实现方法: 使用 v-model 绑定单选按钮组 通过 v-model 绑定一个变量,单选按钮的 value 属性对应…

vue实现多选 全选

vue实现多选 全选

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

vue 实现单选全选

vue 实现单选全选

实现单选和全选功能 在Vue中实现单选和全选功能,可以通过v-model指令绑定数据,结合计算属性和方法来实现交互逻辑。以下是一个完整的实现方案。 基础数据结构 定义列表数据,每个数据项包含选中状态…

vue实现分页全选

vue实现分页全选

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

vue实现复选全选

vue实现复选全选

Vue 实现复选全选功能 在 Vue 中实现复选全选功能,可以通过数据绑定和计算属性来管理选中状态。以下是一个完整的实现方案: 数据准备 data() { return { it…