vue3 setup 使用catch监听器


简单使用方法之一:

如果你用了 对象,即监听对象里面的某一个 ,那么就用箭头函数的方式即可:

下面这种比较??了,合在一起干:

注意看监听器的代码:

深度监听,想非惰性?

      // 下面加了配置 immediate ,所以深度监听了,变非惰性的了。
      watch([() => valObj.val, () => valObj.val2], ([newVal, newVal2], [oldVal, oldVal2]) => {
        console.log("val:");
        console.log(newVal, oldVal);
        console.log("val2:");
        console.log(newVal2, oldVal2);
      }, { immediate: true })

新玩意:

watchEffect 这玩意没惰性,直接执行的。 immediate

用法差不多,但是看你自己:

这玩意自动检测是否使用或是否以来,制动执行,例:

页面一打开就打印 “我是咸瑜” :

因为 ”我是咸瑜“这个字符串没什么依赖对吧,所以他只打印一次,因为 immediate

那如果我这样:

你尝试改变val,他会一直打印val,就是i自己感知,然后里面的全打印,全执行,简单点说就是:

无论你改变的是 val 还是 val2 ,三条log 都会执行。

缺点就是 这玩意不能获取之前的值。。。。

如果你想让他失效(灭了他)

这样写即可:

 同理,上面那种也是一样的原理,,,自己玩去。。。。