一、MVC
Model(模型):用于處理應(yīng)用程序數(shù)據(jù)邏輯,負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù)。處理數(shù)據(jù)的crud
View(視圖):處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。
Controller(控制器):處理數(shù)據(jù)顯示的部分,控制器負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶(hù)輸入,并將數(shù)據(jù)發(fā)送給模型。一般包括業(yè)務(wù)處理模塊和router路由模塊
?
二、??M VVM——視圖模型雙向綁定
Model:模型層:用于處理業(yè)務(wù)邏輯和與服務(wù)器端進(jìn)行交互
View:視圖層:用于將數(shù)據(jù)模型轉(zhuǎn)化為UI展示出來(lái),簡(jiǎn)單來(lái)說(shuō)就是html頁(yè)面
ViewModel:視圖模型層:框架封裝的核心,它負(fù)責(zé)將數(shù)據(jù)與視圖關(guān)聯(lián)起來(lái)
- Model?和?View?并無(wú)直接關(guān)聯(lián),而是通過(guò)?ViewModel?來(lái)進(jìn)行交互的(即雙向數(shù)據(jù)綁定),
- Model?和?ViewModel之間有著雙向數(shù)據(jù)綁定的聯(lián)系。
?三、區(qū)別
MVVM 與 MVC 最大的區(qū)別就是:
MVVM實(shí)現(xiàn)了View和Model的自動(dòng)同步,當(dāng)Model屬性改變時(shí),不用手動(dòng)操作Dom元素去改變View的顯示。而改變屬性后,該屬性對(duì)應(yīng)View的顯示會(huì)自動(dòng)改變
四、延伸:
?闡述一下你所理解的MVVM響應(yīng)式原理
- vue是采用數(shù)據(jù)劫持配合發(fā)布者-訂閱者的模式的方式,
- 通過(guò)Object.defineProperty()來(lái)劫持各個(gè)屬性的getter和setter,
- 在數(shù)據(jù)變動(dòng)時(shí),發(fā)布消息給依賴(lài)收集器(dep中的subs),去通知(notify)觀察者,做出對(duì)應(yīng)的回調(diào)函數(shù),更新視圖
- MVVM作為綁定的入口,整合Observer,Compile和Watcher三者,
- 通過(guò)Observer來(lái)監(jiān)聽(tīng)model數(shù)據(jù)變化,
- 通過(guò)Compile來(lái)解析編譯模板指令,
- 最終利用Watcher搭起Observer,Compile之間的通信橋路,
- 達(dá)到數(shù)據(jù)變化Observer)=>視圖更新;視圖交互變化=>數(shù)據(jù)model變更的雙向綁定效果。
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-608979.html
?參考:https://juejin.cn/post/7110885291946147876文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-608979.html
到了這里,關(guān)于MVC與MVVM模式的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!