mvvm模式的優點以及與MVC的區別


(1).什么是MVVM

MVVM最早由微軟提出來,它借鑒了桌面應用程序的MVC思想,在前端頁面中,把Model用純JavaScript對象表示,View負責顯示,兩者做到了最大限度的分離,把Model和View關聯起來的就是ViewModel。

ViewModel負責把Model的數據同步到View顯示出來,還負責把View的修改同步回Model

View 和 Model 之間的同步工作完全是自動的,無需人為干涉(由viewModel完成)

因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注數據狀態的同步問題,復雜的數據狀態維護完全由 MVVM 來統一管理。

(2).MVVM模式的優點:

1、低耦合:MVVM模式中,數據是獨立於UI的,ViewModel只負責處理和提供數據,UI想怎么處理數據都由UI自己決定,ViewModel不涉及任何和UI相關的事,即使控件改變(input換成p),ViewModel幾乎不需要更改任何代碼,專注自己的數據處理就可以了

2.自動同步數據:ViewModel通過雙向數據綁定把View層和Model層連接了起來,View和Model這兩者可以自動同步。程序員不需要手動操作DOM, 不需要關注數據狀態的同步問題,MVVM 統一管理了復雜的數據狀態維護

3、可重用性:你可以把一些視圖邏輯放在一個ViewModel里面,讓很多view重用這段視圖邏輯。

4、獨立開發:開發人員可以專注於業務邏輯和數據的開發(ViewModel),設計人員可以專注於頁面設計。

5、可測試:ViewModel里面是數據和業務邏輯,View中關注的是UI,這樣的做測試是很方便的,完全沒有彼此的依賴,不管是UI的單元測試還是業務邏輯的單元測試,都是低耦合的

(3).MVVM 和 MVC 的區別:

mvc 和 mvvm 其實區別並不大。都是一種設計思想,主要區別如下:
1.mvc 中 Controller演變成 mvvm 中的 viewModel
2.mvvm 通過數據來驅動視圖層的顯示而不是節點操作。
3.mvc中Model和View是可以直接打交道的,造成Model層和View層之間的耦合度高。而mvvm中Model和View不直接交互,而是通過中間橋梁ViewModel來同步
4.mvvm主要解決了:mvc中大量的DOM 操作使頁面渲染性能降低,加載速度變慢,影響用戶體驗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM