1. 程式人生 > 其它 >computed和watch

computed和watch

一:computed

依賴其他屬性計算值,當值發生變化時才會進行計算,只要值不變化,訪問時返回的結果還是以前返回的結果而不會重新計算。但是計算屬性不支援非同步,當comouted中有非同步操作時是無效的,無法監聽資料的變化。

和watch區別:計算屬性初始化的時候就可以被監聽到並計算,但是watch是監聽的值發生變化了才會被觸發。

二:watch

初始化時候就執行

money: {
    handler() {
       this.msg++
    },
    immediate: true
} 
// 將資料寫成物件的形式,包含handler和immediate,immediate表示在watch中首次繫結資料的時候是否執行handler,值為true的時候則執行。當watch被宣告時就立即執行。   

deep深度監聽

設定deep為true,就可以監聽到物件下key的變化

data() {
   return {
      msg:{
        name: "張三"
        age:30
      }
   } 
},
watch:{
   msg:{
     handler(val) {
        console.log(val)
     },
     deep: true
   } 
}