Vuejs響應式流程

前記:
今天重溫 vuejs的響應式,發如今看源碼( 2.5.17-beta.0版本)的時候會被某些流程繞暈,特此記下今日所得。

vuejs實現數據雙向綁定離不開發佈-訂閱者模式,一般會有一個「中間人」負責調度協調發布者與訂閱者的關係。在vuejsDep實例就是「中間人」,負責依賴收集及通知更新的調度工做。大體流程圖以下:vue

Vuejs響應式.png

依次說明一下:spa

  • Observer發佈者,負責代理數據的getset屬性,使數據的操做具備依賴收集(get時調用)和變更更新通知(set時調用)
  • Dep中間人,調度發佈者與訂閱者之間的關係,在Watcher獲取數據時,Observer通知Dep收集訂閱者,同時訂閱者收集依賴;
  • Watcher訂閱者,視圖更新、computed屬性值獲取、watch選項的回調方法的調用會觸發Watcher類的實例方法get()的執行,獲取值的同時收集依賴,並去重同一個更新週期的依賴,避免重複觸發render視圖更新;
相關文章
相關標籤/搜索