使用vue实现全选与取消全选

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vue实现全选与取消全选相关的知识,希望对你有一定的参考价值。

参考技术A

如上图,我们要做的就是用vue实现这个效果。逻辑还是比较简单的,我就稍微阐述一下:

  

 当我点击上面三个复选框时,我希望下面的全选复选框也跟着被选中。反之,只要有一个复选框没被选中,那么全选也应该取消。另外,全选按钮的点击可以切换全选效果(即:全选与取消全选)。

  

 不多说,源码附送如下:

  

 链接:  https://pan.baidu.com/s/1eS6DJeM

      密码: yr59

  

  

 另外,由于书写的过程比较复杂,本人还录制了一段约20分钟的视频,希望分享给大家,方便大家参考学习:

基于vue的全选与反选案例

全选与反选案例

案例展示



代码详解

<template>
  <div>
    <span>全选:</span>
    <!-- 4. v-model 关联全选 - 选中状态 -->
    <input type="checkbox" v-model="isAll"/>
    <button @click="btn">反选</button>
    <ul>
      <li v-for="(obj, index) in arr" :key="index">
        <!-- 3. 对象.c - 关联 选中状态 -->
        <input type="checkbox" v-model="obj.c"/>
        <span> obj.name </span>
      </li>
    </ul>
  </div>
</template>

<script>
// 目标: 小选框 -> 全选
// 1. 标签+样式+js准备好
// 2. 把数据循环展示到页面上
export default 
  data() 
    return 
      arr: [
        
          name: "猪八戒",
          c: false,
        ,
        
          name: "孙悟空",
          c: false,
        ,
        
          name: "唐僧",
          c: false,
        ,
        
          name: "白龙马",
          c: false,
        ,
      ],
    ;
  ,
  // 5. 计算属性-isAll
  computed: 
    isAll: 
      set(val)
        // 7. 全选框 - 选中状态(true/false)
        this.arr.forEach(obj => obj.c = val)
      ,
      get()
        // 6. 统计小选框状态 ->  全选状态
        // every口诀: 查找数组里"不符合"条件, 直接原地返回false
        return this.arr.every(obj => obj.c === true)
        

      
    
  ,
  methods: 
    btn()
      // 8. 让数组里对象的c属性取反再赋予回去
      this.arr.forEach(obj => obj.c = !obj.c)
    
  
;
</script>

<style>
</style>

以上是关于使用vue实现全选与取消全选的主要内容,如果未能解决你的问题,请参考以下文章

vue全选与取消全选

html 实现全选与取消全选

Element-ui中tree树形控件全选与取消全选的功能实现

使用JavaScript完成表格的全选与取消

Jquery - checked 全选与取消全选

react纯手写全选与取消全选