Outline
* 認識 watch 監聽器
* key (欲觀察的值)
* value (想做的事情,及一些可選設定)
* 小小的範例
* 參考資料
➤ 認識 watch 監聽器
watch 監聽器,用以監聽某個數據,並觸發相對應的處理。
在 watch 物件底下,我們可以使用鍵值(key-value)的方式定義我們想要觀察的值,及相對應的操作。
接著我們從 key,也就是我們想觀察的值說起。
➤ Key (欲觀察的值)
- 觀察 data 中的值
- 觀察 data 中的 Object 底下的值
1. 這邊要提醒的是,要記得使用引號包裹,使之為字串。
2. 此用法情境表示只想觀察監聽 Object 底下的特定值。如果要監聽整個 Object 也可以,只是會有額外的事情需要處理,我們留到待會的 Value 設定中再提。
- 觀察 computed 計算後的回傳值
如果想觀察的值,是需要經過某些特定規則運算後的結果,配合 computed,監聽回傳值也可以。
➤ value (想做的事情,及一些可選設定)
基本用法
如果你不需要任何其他設定,那麼直接在 value 的部分寫入 Function 即可。其中 function 有兩個參數值,分別為改變後的值,及改變前的值。
如果想要額外管理或是複用 function,可以把 function 寫進 methods 管理。
上述的 Function,官網文件皆建議不要使用 Arrow function 來撰寫,因為 Arrow function 的 this,是在 function 被呼叫時綁定的,可能不會按照期望的指向 Vue 實例。
可選設定(options)
可選設定包含 deep
、immediate
。如果想要加上可選設定,需把 value 改寫為 Object 形式,用以傳入其他值。如下圖:
- handler
放入我們需要處理的程序。 - deep
當欲觀察值的特性為 call by reference,例如 Object 時,需將 deep 值設定為 true,告知 watch 需要深度觀察。否則會因為特性關係,無法觸發監聽器。 - immediate
監聽器預設為當值有所變化時才會觸發。如果我們希望在初始化完成後,就先觸發,執行 handler,就可以將 immediate 值設為 true。
➤ 小小的範例
即時驗證帳號格式,條件為 3~15 個字,只能使用小寫英文、數字、底線。