Vue3在使用watch属性监视reactive定义的响应式数据时遇到的坑: 1.当监测对象为对象类型时,无法获取到oldValue。 2.当监测对象是reactive定义的数据时,强制开启深度监视。 3.当监测对象时reactive定义数据中的一个类型为对象的属性时,需要手动开启深度监视。
watch(sum,(newV,oldV)=>{
console.log(newV+'-'+oldV);
})
watch(msg,(newV,oldV)=>{
console.log(newV+'-'+oldV);
})
watch([sum,msg],(newV,oldV)=>{
console.log(newV,oldV);
})
watch([sum,msg],(newV,oldV)=>{
console.log(newV,oldV);
},{immediate: true,deep: true})
watch(person,(newV,oldV)=>{
console.log(newV,oldV);
})
watch(()=>person.name,(newV,oldV)=>{
console.log(newV,oldV);
})
watch([()=>person.name,()=>person.age],(newV,oldV)=>{
console.log(newV,oldV);
})
watch(()=>person.job,(newV,oldV)=>{
console.log(newV,oldV);
},{deep:true})
**注:**必须获取reactive中的oldValue时,可以将该属性提取出来使用ref定义。
如何监视ref定义的对象类型数据? 两种方法:
watch(person.value,(newV,oldV)=>{
console.log(newV,oldV);
})
watch(person,(newV,oldV)=>{
console.log(newV,oldV);
},{deep: true})
|