1. 程式人生 > 程式設計 >Vuejs中的watch例項詳解(監聽者)

Vuejs中的watch例項詳解(監聽者)

最近剛剛追完慶餘年,心思還總是在劇情裡,然後就覺得在vuejs裡watch就是監察院,一個不折不扣的特務機構。在Vue中watch被稱為監聽者,它隨時觀察這vue例項中每一個數據的變化,當資料發生改變,做出響應。

通過下面的示例程式碼來看一下這個監察院是怎麼運作的:

new Vue({
  el:"#app",data(){
    reutrn {
      candy:""
    }
  },//傳說中的監察院start
  watch:{
    candy:{
      handler(newVal,oldVal){
      },immediate: true,deep:true
    }
  }
  //傳輸中的監察院end
})
/***
watch中監控這candy這個資料的變化,
handler中傳入了兩個引數:
newVal->是改變後的資料
oldVal->是改變前的資料
***/

按照慶餘年的劇情分析,監察院在監控candy這個人,一旦candy發生變節,就會執行handler中的操作,newVal和oldVal就好像是提供給監察院人員來判斷如果candy是內部鬥爭還是叛國,根據情節處以什麼樣的處罰。

程式碼中immediate 和deep 又是什麼意思呢?

immediate和deep像是慶帝給陳萍萍的指令:

immediate為true是告訴監察院不管candy有沒有變節,都先給他點處罰,敲山震虎!

deep為true是告訴監察院往深了查,看看有沒有什麼人跟這個人聯絡了,聯絡以後又發生了事!

寫這篇文章的時候,我也在跟朋友探討watch和updated,updated也是在資料發生改變的時候做出相應,但是如果將updated說成是監察院就感覺太嘍了!updated不能指定監測資料,只要有資料發生變化就會指向updated中的方法,不管誰發生變化都會執行,這麼不靈活怎麼能配的上監察院這麼厲害的特務機構呢!嘻嘻!

總結

以上所述是小編給大家介紹的Vuejs中的watch例項詳解,希望對大家有所幫助!