computed, watch, el‐form rules 的執行順序 - daniel-qa/Vue GitHub Wiki

computed, watch, el-form rules 的執行順序

簡短結論(先給你快速吸收版)

computed > watch > el-form rules

也就是說:computed 的變動會觸發 watch,watch 可能改變欄位或觸發 validate,而最終才由 el-form 的 rules 驗證。

  • 🧠 深入解析(更懂原理,寫碼不卡關)

1. computed 是同步計算屬性

它會根據其依賴值即時計算、更新,優先於 watch 和 rules。

在欄位變動時,會「馬上」重新計算(但只有被使用時才會觸發執行,這是 lazy 的特性)。

2. watch 是監控變數的變化

在底層響應式系統偵測到變化後非同步執行 callback。

如果你在 watch 中執行 formRef.validate(),那就會主動觸發 rules 驗證。

它會排在微任務隊列中,所以會在 DOM 更新之後才執行。

3. el-form 的 rules 是手動或被動觸發的驗證規則

只有在:

你觸發 validate() 方法,

或者 input 觸發 change/blur 時,

才會執行驗證。

所以 rules 本身「不會主動發生」,而是被某些事件觸發。