上一篇博客我们说了 computed,这一篇我们再来说一个东西,那就是 watch
一、什么是 watch
上一篇我们说的 computed,它是用来针对数据变化,来做出一定的响应,但是 computed 不好的就是缓存这个缺点。为了能够让 Vue 更好,更强大,Vue 又弄了一个 watch,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。这也就是 watch 解决了 computed 的内个缓存问题。(但是没有绝对,后面我们会说 watch 也有一些缺点)
我们现在来实现一个小功能,就好比弄个计算器,但是我们这里只有加法,先用之前学的 computed 写一下。
这个是 ok 的哈,我已经尝试了。
然后我们将这个修改成使用侦听器的。
首先,这个 watch 和 computed 一样,属于同一层的属性。
我们需要监听 a 还有 b 两个值的变化,所以我们写一下~
这里要注意一下,这个 watch 中的这个 a 呀,b 呀不是瞎写的,你监听什么就写什么,好比你要监听的字段名称叫 abcde,那你这个 watch 中就得写成 abcde() {} ,千万别瞎写!!!
然后我们直接写我们要操作的即可。
当然,我们也可以优化一下。
二、监听新旧变化的值
我们还可以通过 watch 拿到被监听的遍历在变化前后的值。
通过给 a 还有 b 传递两个参数:newData、oldData,我们来再 console 中输出一下。
可以看到,我们可以拿到变化前,还有变化后的值。当然,这里的两个参数其实是通过回调写进来的。
三、计算属性 vs 侦听器
其实就用我们上面的例子就可以说一下,如果我们是用 watch,我们还得写两个这样的监听,但是如果使用 computed,我们只需要写一个就好。
所以说,这 watch 和 computed 一样,有优点,有缺点,具体怎么用,到时候看项目中适合什么。
这一篇东西不多,自己练习一下
有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com
最近网站已经做好,并且已经上线,欢迎各位留言~~~