setup() { //数据 let num = ref(0) let msg = ref('6666') let person = reactive({ name:'大王', age:18, job:{ j1:{ money:20 } } })
//情况1:监视ref定义的数据(watch有第三个参数,对象类型的,可配置是否提前监视,是否深度监视) watch(num,(newVal,oldVal)=>{ console.log('值变化了',newVal,oldVal) },{immediate:true}) //情况二:监视多个数据(newVal会是一个数组['0','666'],是一个由所有监视的数据所组成的集合) watch([num,msg],(newVal,oldVal)=>{ console.log('值变化了',newVal,oldVal) }) //情况三:监视reactive定义的数据(1:oldVal会无法正确获取!!!!2:会强制开启深度监视) watch(person,(newVal,oldVal)=>{ console.log(newVal,oldVal) }) //情况四:监视reactive数据中其中的一个属性(要写成一个函数的返回值类型) watch(()=>person.name,(newVal,oldVal)=>{ console.log(newVal,oldVal) }) //情况五:监视reactive数据中其中的一些属性(要用数组包起来) watch([()=>person.name,()=>person.age],(newVal,oldVal)=>{ console.log(newVal,oldVal) }) //特殊情况 watch(()=>person.job,(newVal,oldVal)=>{ console.log(newVal,oldVal) },{deep:true})//监视reactive数据中的一个对象属性时,deep配置属性是有效的