watch监听
在vue项目中可以通过watch对数据进行监听,当监听的数据发生变化时在执行的回调函数中可以进行一些自定义操作
watch可以监听像object这样的复杂数据类型,只需要给watch开启深度监听deep:true,但watch不能直接监听对象中具体某个属性的值,需要通过函数的形式监听
例如:
const obj=ref({
a:10,
b:20
})
错误写法:
watch(obj.value.a,(new, old)=>{
console.log(new, old)//如果直接
})
因为obj.value.a直接就拿到了10,无法对一个已确定的值进行监听,执行会直接报错
正确写法
watch(()=>obj.value.a,(new, old)=>{
console.log(new, old)
})