vue中watch的使用

2021-10-22 23:23:36 字數 1254 閱讀 6441

"text" v-model.lazy=

"username"

/>

watch:

}

lazy的作用,在enter鍵按下或者失去輸入框失去焦點後觸發此方法的缺點:當值第一次繫結的時候不會執行監聽函式,只有當值改變的時候才會執行;

需求:如果我們想在第一次繫結的時候就執行此監聽函式,則需要設定immediate為true.

應用場景:當父元件向子元件動態傳值時,子元件props首次獲取到父元件傳來的預設值時,也需要執行函式,此時就需要設定immediate:true;

immediate表示在watch中首次繫結的時候,是否執行handler,值為true則表示在watch中宣告的時候,就立即執行handler方法,值為false,則和一般使用watch一樣,在資料發生變化的時候才執行handler。

username:

, immediate:

true,}

,

當需要監聽乙個物件的改變時,普通的watch方法無法監聽到物件內部屬性的改變,只有data中的資料才能夠監聽到變化,此時就需要deep屬性對物件進行深度監聽。

"text" v-model.lazy=

"usermsg.weight"

/>

data()

}},watch:

, immediate:

true

, deep:

true

}}

注意:當監測為物件的時候,newval == oldval

此時會給usermsg的所有屬性都加上監聽函式,如果屬性較多時,每個屬性值的變化都會執行handler。如果只需要監聽物件中的乙個屬性值,則可以做以下優化:使用字串的形式監聽物件屬性:

注意:陣列的變化不需要深度監聽;

在watch中不要使用箭頭函式,因為箭頭函式中的this是指向當前作用域.

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...

vue中watch的使用探索

在專案中,經常有需要根據乙個值的變化,來相應的更新另乙個值的狀態。vue給我們提供了乙個很好用的watch方法,可以方便監控,watch並不完美,需要具體了解一下。new vue phonelist xiaomi huawei oppo watch 對於字串 數字等簡單的型別,可以入以上形式直接監聽...