IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue 实现 全选功能 -> 正文阅读

[JavaScript知识库]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>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:44:50  更:2021-10-27 12:46:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 14:09:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码