vue中watch的使用探索

2021-10-25 18:39:50 字數 1013 閱讀 6821

在專案中,經常有需要根據乙個值的變化,來相應的更新另乙個值的狀態。vue給我們提供了乙個很好用的watch方法,可以方便監控,watch並不完美,需要具體了解一下。

new

vue(

, phonelist:

['xiaomi'

,'huawei'

,'oppo'],

},watch:,}

})

對於字串 數字等簡單的型別,可以入以上形式直接監聽,當每次發生變化時,進行相對應的操作。watch有乙個特點,最初繫結的時候不會執行,如果想要在繫結的時候就執行操作,則需要通過handler方法和immediate屬性配合

watch:

, immediate:

true},

}

預設情況下 handler 只監聽obj這個屬性它的引用的變化,我們只有給obj賦值的時候它才會監聽到,比如我們在 mounted事件鉤子函式中對obj進行重新賦值:

mounted:

}

這時 watch才能監聽到,進行相應操作。

如果要強制監聽,那麼就需要用到deep屬性。

watch:

, immediate:

true

, deep:

true

}}

deep:true表述深入觀察,watch進行監聽的時候,會是按層級遍歷,將每乙個屬性都新增到***中,這樣任何屬性變化,都會觸發相應操作。在工作,考慮到效能方面,如果乙個物件又很多的屬性,一一監聽會造成很大的開銷。那麼我們可以針對性的只監聽其中乙個屬性,例如

watch:

, immediate:

true

, deep:

true

}}

這種寫法的結果就是,watch會按層級,找到job屬性,指給它設定監聽,進行相應操作。

vue中watch的使用

text v model.lazy username watch lazy的作用,在enter鍵按下或者失去輸入框失去焦點後觸發此方法的缺點 當值第一次繫結的時候不會執行監聽函式,只有當值改變的時候才會執行 需求 如果我們想在第一次繫結的時候就執行此監聽函式,則需要設定immediate為true....

vue中watch的使用

vue中的watch是乙個比較重要的概念,通過他我們可以檢測data的變化,下面進行詳細的介紹。watch定義方式如下 即在watch中,舉例如下 en 函式執行之後,分別在控制台中列印出new 2,old 1 以及 alert 666。舉例 最後貼出完整的 class add remark cla...

vue中watch的使用問題

1 如果有change原生事件盡量用原生,不要用watch,畢竟watch只是封裝了一層,效能各方面不如原生方法。2 盡量不要watch陣列,如果非得監控陣列的變化,就設定乙個flag,陣列變flag變,watch對應的flag來處理。當前有兩個陣列 tempy label1 label2 labe...