Vue3 _ 7. Vue 侦听器 Watch

上一篇博客我们说了 computed,这一篇我们再来说一个东西,那就是 watch

一、什么是 watch

上一篇我们说的 computed,它是用来针对数据变化,来做出一定的响应,但是 computed 不好的就是缓存这个缺点。为了能够让 Vue 更好,更强大,Vue 又弄了一个 watch,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。这也就是 watch 解决了 computed 的内个缓存问题。(但是没有绝对,后面我们会说 watch 也有一些缺点)

我们现在来实现一个小功能,就好比弄个计算器,但是我们这里只有加法,先用之前学的 computed 写一下。

Vue3 _ 7. Vue 侦听器 Watch_第1张图片

这个是 ok 的哈,我已经尝试了。

然后我们将这个修改成使用侦听器的。

首先,这个 watch 和 computed 一样,属于同一层的属性。

我们需要监听 a 还有 b 两个值的变化,所以我们写一下~

Vue3 _ 7. Vue 侦听器 Watch_第2张图片

这里要注意一下,这个 watch 中的这个 a 呀,b 呀不是瞎写的,你监听什么就写什么,好比你要监听的字段名称叫 abcde,那你这个 watch 中就得写成 abcde() {} ,千万别瞎写!!!

然后我们直接写我们要操作的即可。

Vue3 _ 7. Vue 侦听器 Watch_第3张图片

当然,我们也可以优化一下。

Vue3 _ 7. Vue 侦听器 Watch_第4张图片

二、监听新旧变化的值

我们还可以通过 watch 拿到被监听的遍历在变化前后的值。

通过给 a 还有 b 传递两个参数:newData、oldData,我们来再 console 中输出一下。

Vue3 _ 7. Vue 侦听器 Watch_第5张图片

可以看到,我们可以拿到变化前,还有变化后的值。当然,这里的两个参数其实是通过回调写进来的。

三、计算属性 vs 侦听器

其实就用我们上面的例子就可以说一下,如果我们是用 watch,我们还得写两个这样的监听,但是如果使用 computed,我们只需要写一个就好。

所以说,这 watch 和 computed 一样,有优点,有缺点,具体怎么用,到时候看项目中适合什么。

这一篇东西不多,自己练习一下

有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com

最近网站已经做好,并且已经上线,欢迎各位留言~~~

你可能感兴趣的:(Vue3,vue,vue3,vue,watch,watch,lemon1234.com)