MVVM(Model-View-ViewModel)是對 MVC(Model-View-Control)和 MVP(Model-View-Presenter)的進一步改進。
『View』:視圖層(UI 用戶界面)
『ViewModel』:業務邏輯層(一切 js 可視為業務邏輯)
『Model』:數據層(存儲數據及對數據的處理如增刪改查)
MVVM將數據雙向綁定(data-binding)作為核心思想,View和Model之間沒有聯系,它們通過ViewModel這個橋梁進行交互。
Model 和 ViewModel 之間的交互是雙向的,因此View的變化會自動同步到Model ,而Model的變化也會立即反映到View上顯示
當用戶操作View,ViewModel感知到變化,然后通知Model發生相應改變;反之當Model發生改變,ViewModel也能感知到變化,使View作出相應更新。
1. 簡述 MVVM
- MVVM 是 Model-View-ViewModel 的縮寫。MVVM 是一種設計思想。Model 層代表數據模型,也可以在 Model 中定義數據修改和操作的業務邏輯;View 代表 UI 組件,它負責將數據模型轉化成 UI 展現出來,ViewModel 是一個同步 View 和 Model 的對象。
- 在 MVVM 架構下,View 和 Model 之間並沒有直接的聯系,而是通過 ViewModel 進行交互,Model 和 ViewModel 之間的交互是雙向的, 因此 View 數據的變化會同步到 Model 中,而 Model 數據的變化也會立即反應到 View 上。
- ViewModel 通過雙向數據綁定把 View 層和 Model 層連接了起來,而View 和 Model 之間的同步工作完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注數據狀態的同步問題,復雜的數據狀態維護完全由 MVVM 來統一管理。
1.實現compile,進行模板的編譯,包括編譯元素(指令)、編譯文本等,達到初始化視圖的目的,並且還需要綁定好更新函數;
2.實現Observe,監聽所有的數據,並對變化數據發布通知;
3.實現watcher,作為一個中樞,接收到observe發來的通知,並執行compile中相應的更新方法。
4.結合上述方法,向外暴露mvvm方法。
作者:養樂多__
鏈接:https://www.jianshu.com/p/bcad6a5a6b9c
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。