vue 实现 全选功能

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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 实现 全选功能所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。