VUE3-watch侦听reactive数据
特性
- 对于reactive函数获取的代理对象,在进行侦听的时候,只能获取到newValue,无法获取到oldValue
- 对于reactive函数获取的代理对象来说,默认就是开启深度侦听的,这种深度侦听是无法取消的,配置deep:false无效
// 对于reactive函数获取的代理对象,在进行侦听的时候,只能获取到newValue, oldvalue无法获取。
// 对于reactive函数获取的代理对象来说,默认就是开启深度侦听的。
// 这种深度侦听是无法取消的,配置deep: false 无效。
watch(data, (newValue, oldValue) => {
console.log(newValue, oldValue);
}, {
deep: false
})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RgyYrHSM-1689761692664)(https://gitee.com/zhang_luwei/image-resources/raw/master/image/1689586856365.jpg)]
如果想指定某个属性侦听,则第一个需要侦听的数据,必须是一个函数。即侦听的如果不是响应式的,需要使用函数
// 怎么办我不想每个属性都侦听,我只想指定某个属性侦听。
// 只想侦听data中的counter1这个属性。
// 注意点:第一个需要侦听的数据,必须是一个函数。即侦听的如果不是响应式的,需要使用函数
watch(() => data.counter1, (newValue, old

文章介绍了在Vue3中,使用`watch`侦听`reactive`函数创建的代理对象时,只能获取到`newValue`而无法获取`oldValue`,并且深度侦听是默认开启且无法关闭的。同时,当想要监听特定属性时,需要传入一个返回该属性值的函数。示例代码展示了如何监听`data`中的`counter1`和嵌套属性`counter2`的变更。
最低0.47元/天 解锁文章
3849

被折叠的 条评论
为什么被折叠?



