当前位置:首页 > 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实现单选按钮

vue实现单选按钮

实现单选按钮的基本方法 在Vue中实现单选按钮通常使用v-model指令绑定数据,结合input元素的type="radio"属性。以下是一个基础示例: <template> <…

jquery 单选

jquery 单选

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

jquery 全选

jquery 全选

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

vue实现全选指令

vue实现全选指令

实现全选指令的方法 在Vue中实现全选功能可以通过自定义指令或组件方法完成。以下是两种常见的实现方式: 自定义指令实现 Vue.directive('select-all', { bind(el…

vue radio实现单选

vue radio实现单选

实现 Vue 单选按钮(Radio)的方法 使用原生 <input type="radio"> 通过 v-model 绑定数据实现单选功能,适合基础场景: <template>…

vue el实现全选

vue el实现全选

Vue Element UI 实现全选功能 使用 Vue 和 Element UI 实现表格全选功能,可以通过 el-table 和 el-checkbox 组件结合实现。以下是具体实现方法:…