MVVM模式
視圖層和數據層的雙向綁定,讓我們無需再去關心DOM操作的事情,更多的精力放在數據和業務邏輯上去
-
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 來統一管理。
Vue.js優點 - 面向數據編程
- 低耦合。 視圖(View)可以獨立於Model變化和修改,一個ViewModel可以綁定到不同的"View"上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。
- 可重用性。 你可以把一些視圖邏輯放在一個ViewModel里面,讓很多view重用這段視圖邏輯。
- 獨立開發。 開發人員可以專注於業務邏輯和數據的開發(ViewModel),設計人員可以專注於頁面設計。
- 可測試。 界面素來是比較難於測試的,而現在測試可以針對ViewModel來寫易用靈活高效