1 回答

TA貢獻2037條經(jīng)驗 獲得超6個贊
MVVM與MVC最大的區(qū)別就是:MVVM實現(xiàn)了View和Model的自動同步,也就是當(dāng)Model的屬性改變時,我們不用再自己手動操作Dom元素,來改變View的顯示,而是改變屬性后該屬性對應(yīng)View層顯示會自動改變。非常的神奇~
MVC,MVP,MVVM是三種常見的前端架構(gòu)模式(Architectural Pattern),它通過分離關(guān)注點來改進代碼組織方式。不同于設(shè)計模式(Design Pattern),只是為了解決一類問題而總結(jié)出的抽象方法,一種架構(gòu)模式往往能使用多種設(shè)計模式。
MVC模式是MVP,MVVM模式的基礎(chǔ),這兩種模式更像是MVC模式的優(yōu)化改良版,他們?nèi)齻€的MV即Model,view相同,不同的是MV之間的紐帶部分。
拓展內(nèi)容:
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。
MVVM本質(zhì)上就是MVC 的改進版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務(wù)邏輯分開。當(dāng)然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時幫忙處理 View 中由于需要展示內(nèi)容而涉及的業(yè)務(wù)邏輯。
微軟的WPF帶來了新的技術(shù)體驗,如Silverlight、音頻、視頻、3D、動畫……,這導(dǎo)致了軟件UI層更加細(xì)節(jié)化、可定制化。同時,在技術(shù)層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。
MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應(yīng)用方式時發(fā)展演變過來的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應(yīng)對客戶日益復(fù)雜的需求變化。
- 1 回答
- 0 關(guān)注
- 1404 瀏覽
添加回答
舉報