這篇文章主要介紹了vue 中的watcher的相關資料,需要的朋友可以參考下
#觀察Watchers
##雖然計算屬性在大多數情況下更合適,但有時也需要一個自訂的watcher 。這就是為什麼 Vue 提供一個更通用的方法透過watch 選項,來回應資料的變化。當你想要在資料變化回應時,執行非同步操作或開銷較大的操作,這是很有用的。 大家對於watch 應該不陌生,專案中都用過下面這種寫法:watch: { someProp () { // do something } } // 或者 watch: { someProp: { deep: true, handler () { // do something } } }
a: {{ a }}
b: {{ b }}
b() { return this.a * 2;↵ } "a" function () { vm._update(vm._render(), hydrating);↵ }
normal-watcher
我們在watch 中定義的,都屬於這種類型,即只要監聽的屬性改變了,都會觸發定義好的回調函數#computed-watcher
每一個computed屬性,最後都會產生一個對應的watcher 對象,但是這類watcher 有個特點,我們拿上面的b 舉例: 屬性b 依賴a,當a 改變的時候,b 並不會立即重新計算,只有之後其他地方需要讀取b 的時候,它才會真正計算,即具備lazy(懶計算)特性render-watcher
每一個元件都會有一個render-watcher, function () {↵ vm._update(vm._render(), hydrating);↵ }, 當data/computed
#三種watcher 的執行順序
除了功能上的區別,這三種watcher 也有固定的執行順序,分別是:computed-render -> normal-watcher -> render-watcher
下面從一段實例程式碼看下vue中的watcher
#在這個範例中,使用watch 選項允許我們執行非同步操作(訪問一個API),限制我們執行該操作的頻率,並在我們得到最終結果之前,設定中間狀態。這是計算屬性無法做到的。
Ask a yes/no question:
{{ answer }}
以上是如何使用vue中的watcher的詳細內容。更多資訊請關注PHP中文網其他相關文章!