Vuejs中的watch例項詳解(監聽者)
阿新 • • 發佈:2020-01-09
最近剛剛追完慶餘年,心思還總是在劇情裡,然後就覺得在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例項詳解,希望對大家有所幫助!