MVVM和MVC的區別html
MVC和MVVM的區別其實並不大。都是一種設計思想。前端
主要就是MVC中Controller演變成MVVM中的viewModel。設計模式
MVVM主要解決了MVC中大量的DOM操做使頁面渲染性能下降,加載速度變慢,影響用戶體驗。框架
當和Model頻繁發生變化,開發者須要主動更新到View。函數
MVVM:是Model-View-ViewModel的簡寫佈局
M:對應於MVC的M性能
V:對應於MVC的Vspa
VM:ViewModel,是把MVC裏的controller的數據加載,加工功能分離出來設計
MVVM是Web前端一種很是流行的開發模式,雙向綁定
利用MVVM可使咱們的代碼更加專一於處理業務邏輯而不是去關心DOM操做。
目前著名的MVVM框架有VUE,avalon,angular等
MVVM設計模式的優勢
1. 雙向綁定技術,當Model變化時,View-Model會自動更新,View也會自動變化。很好的作到數據的一致性
2. 因爲控制器的功能大都移動到View上處理,大大的對控制器進行了瘦身
3. View的功能進一步強化,具備控制的部分功能,
若想無限加強它的功能,甚至控制器的所有功能幾乎均可以遷移到各個View上
(不過這樣不可取,那樣View幹不了屬於它職責範圍內的事情)。
View能夠像控制器同樣具備本身都View-Model
4. 能夠對View或ViewController的數據處理部分抽象出來一個函數處理model。
這樣它們專職頁面佈局和頁面跳轉,它們必然更一步的簡化。
MVVM設計模式的缺點
1. 數據綁定也使得bug很難被調試。好比你看到頁面異常了,有多是你的View的代碼有bug,也多是你的model的代碼有問題。數據綁定使得一個位置的Bug被快速傳遞到別的位置,要定位原始出問題的地方就變得不那麼容易了。
2. 數據雙向綁定不利於代碼重用。客戶端開發最經常使用的是View,可是數據雙向綁定技術,讓你在一個View都綁定了一個model,不一樣的模塊model都不一樣。那就不能簡單重用view了
3. 一個大的模塊中model也會很大,雖然使用方便了也很容易保證數據的一致性,可是長期持有,不釋放內存就形成話費更多的內存。
原文出處:https://www.cnblogs.com/mlw1814011067/p/10400240.html