MVVM和MVC的區別,以及MVVM的缺點

MVVM和MVC的區別

MVC和MVVM的區別其實並不大。都是一種設計思想。

主要就是MVC中Controller演變成MVVM中的viewModel。

MVVM主要解決了MVC中大量的DOM操作使頁面渲染性能降低,加載速度變慢,影響用戶體驗。

當和Model頻繁發生變化,開發者需要主動更新到View。

 

MVVM:是Model-View-ViewModel的簡寫

 

M:對應於MVC的M

V:對應於MVC的V

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也會很大,雖然使用方便了也很容易保證數據的一致性,但是長期持有,不釋放內存就造成話費更多的內存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章