vue3 監視 watch


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM