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配置屬性是有效的
