vue 实现 全选功能

Posted 采默

tags:

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

全选思路

  1. 准备标签,样式,js,准备数据

  1. 将数据循环展示在页面上, 在li 里v-for

  2. 在全选框 v-model = "isAll" //总的状态

  3. 小选框 v-model = "" //单个的状态

  4. 小选影响全选 ... 定义计算属性 isAll 统计小选框的状态, every查找数组里不符合条件的,直接返回false ...判断每一个小选框的状态, 只要有一个小选框的状态不为true 就是没有被勾上, 那就返回false , 全选框的状态就是false

  5. 全选影响小选... set(val) 设置全选的状态(true/false)...然后就遍历每个小选框看小选框的状态,让它的状态改为val全选的状态

    <template>
      <div>
        <span>全选:</span>
        <input type="checkbox" v-model="isAll" />
        <button @click="btn">反选</button>
        <ul>
          <li v-for="(obj, index) in arr" :key="index">
            <input type="checkbox" v-model="obj.c" />
            <span>{{ obj.name }}</span>
          </li>
        </ul>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          arr: [
            {
              name: "猪八戒",
              c: false,
            },
            {
              name: "孙悟空",
              c: false,
            },
            {
              name: "唐僧",
              c: false,
            },
            {
              name: "白龙马",
              c: false,
            },
          ],
        };
      },
      computed: {
        isAll: {
          //全选影响小选
          set(val) {
            //set(val) 设置全选的状态(true/ false)
            //我们手动设置了全选框的状态,就遍历数组里的每个对象的c属性, 也就是遍历看每个小选框的状态,让它的状态改为 val 全选框的状态
            this.arr.forEach((obj) => (obj.c = val));
          },
          //小选框影响全选框
          get() {
            //判断数组里的每一个对象的c属性 它是不是等于true, 就是判断每一个小选框的状态, 只要有一个小选框的状态不为true 就是没有被勾上, 那就返回false , 全选框的状态就是false
            // every口诀: 查找数组里"不符合"条件, 直接原地返回false
            return this.arr.every((obj) => obj.c === true);
          },
        },
      },
      methods: {
        btn() {
          //实现反选
          //遍历数组里的每一项,  让数组里对象的c属性取反再赋值回去
          this.arr.forEach((obj) => (obj.c = !obj.c));
        },
      },
    };
    </script>

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

vue-cli实现最简单的全选全不选反选功能。不容错过呦!!!!!话不多说直接上代码。。。。

Vue的全选功能实现思路

vue.js实战——购物车练习(包含全选功能)

Vue实现全选功能

vue 实现 全选功能

vue入门------简单购物车功能实现(全选,数量加减,价格加减)