1. 程式人生 > 其它 >VUE 監視屬性——watch

VUE 監視屬性——watch

  watch: {

    isHot: {

      immediate: true, // 初始化時讓 handler 呼叫一下

      // handler 什麼時候呼叫?當 isHot 發生改變時

      handler(newValue, oldValue) {

        console.log('isHot被修改了', newValue, oldValue)

      }

    }

  }

  • 簡寫形式

    watch: {

      isHot(newValue, oldVaule) {

        console.log('isHot被修改了', newValue, oldValue);

      }

    }

  • 深度監聽

    deep: true

    (1)Vue 中的 watch 預設不監測物件內部值的改變(一層)。

    (2)配置 deep: true 可以監測物件內部值改變(多層)。

    備註:

      (1)Vue 自身可以監測物件內部值的改變,但 Vue 提供的 watch 預設不可以!

      (2)使用 watch 根據資料的具體結構,決定是否採用深度監聽。

總結:

  1. 當被監聽的屬性變化時,回撥函式自動呼叫,進行相關操作

  2. 監聽的屬性必須存在( data 或 computed 中存在),才能進行監聽

  3. 監聽的兩種寫法:

    (1)new Vue時傳入 watch 配置

    (2)通過 vm.$watch 監聽,vm.$watch('xxx') 要加引號,否則會讀取變數是否存在