vue watch侦听器

本文详细解析了Vue.js中Watch与Computed特性的区别与应用场景,强调了Watch适用于处理异步或开销大的数据变化,而Computed则擅长处理多数据影响单一数据的场景。同时介绍了Watch的三种使用方法,包括普通监听、深度监听和多层监听。
摘要由CSDN通过智能技术生成

watch

watch 计算属性/计算数据/异步派出数据
当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的,
computed和watch的区别

  1. computed是依赖数据变化,才去计算,没法处理异步的变化
  2. watch回去主动处理数据变化,可以直接处理异步
  3. watch适合处理,一个数据影响多个数据,更适合处理数据相互独立的场景
  4. computed: 适合处理 多个数据影响一个数据,数据相互不独立的场景,也可以(get,set)
    watch 三种使用方法
        let app = new Vue({
            el:"#app",
            data:{   
                users, //多层的数组数据
                showUsers:users, 
                gender:"",
                checkAll:false,
            },

方法1
watch做监听 某一个数据发生改变时,触发响应的功能,想监听谁就直接写,默认监听一层数据,第二层发生改变,监听不了。

watch: {// 想监听谁就直接写,默认监听一层数据               
     checkAll(){ //watch做监听 数据发生改变触发checkAll方法 
         this.users.forEach(user=>{ // 当checkAll发生改变时 遍历数组没一个值都为true
            user.checked = this.checkAll;
         })
     },

     users(){ //这里的数据是多层的,处理不了 (){}users数据发生改变触发的回调函数
           console.log(2)  //判断之前随意输出这里不触发
           if(this.users.every(user=>user.checked)){//如果数组中的每一个checked都为真
                  this.checkAll = false;
           }else{
                 this.checkAll = true;
           }
      }
}

第二种方法深度监听
深度监听handler方法和deep属性结合,可以监听多层

users:{ //users 属性名 要监听的数据 属性值是对象 { } 里面包括着固定的方法handler
       handler(newVal,oldVal){ //handler固定方法, 当users数据发生改变触发的方法
       console.log("新的值"+newVal)
       console.log("旧的值"+oldVal)
       if(this.users.every(user=>user.checked)){
            this.checkAll = true;
       }else{
            this.checkAll = false;
       }
	},
       deep:true  // 默认是false 只监听一层 true开启深度监听
}

第三种 3.多层监听

        watch: {
            'a.b.c': function() {
                //...
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason–json

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值