MVC是應(yīng)用最廣泛的框架之一,一般的MVC分為:model(模型),controller(控制器),view(視圖)
創(chuàng)新互聯(lián)公司憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識和豐厚的資源優(yōu)勢,提供專業(yè)的網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站優(yōu)化、軟件開發(fā)、網(wǎng)站改版等服務(wù),在成都十載的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都超過千家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。這是基于分層的目的,讓彼此的責(zé)任分開
視圖一般通過控制器來和模型聯(lián)系,控制器是模型和視圖的協(xié)調(diào)者,視圖和模型不直接聯(lián)系
如果有用戶操作應(yīng)該放在哪呢,MVC間又發(fā)生變化了
用戶(User)通過控制器來操作模型以達(dá)到視圖的變化
MVP是從經(jīng)典的MVC上面演變而來,他們的基本思想有相通的地方: C ontroller/Presenter負(fù)責(zé)邏輯的處理,Model負(fù)責(zé)提供數(shù)據(jù),View負(fù)責(zé)顯示
但是在MVP中Presenter完全吧View和Model進(jìn)行了奮力,主要的程序邏輯在Prensenter里實(shí)現(xiàn),而且Presenter和View沒有直接聯(lián)系,而是通過定義好的接口進(jìn)行交互,從而使得改變View時(shí)保持Presenter的不變
MVVM的代表框架有,Angular.JS,Vue.js,Knockout
相比于前面兩種模式,MVVM只是把MVC的controller和MVP中的presenter換成ViewModel
View的變化會自動更新到ViewModel中,ViewModel的變化也會自動更新到View中
這種自動同步是因?yàn)閂iewModel中的屬性實(shí)現(xiàn)了Observer,當(dāng)屬性變更時(shí)都能觸發(fā)對應(yīng)的操作