MVC與MVVM的區(qū)別
MVC
MVC是后端的分層開(kāi)發(fā)概念赡矢。
M:Model層溅潜,只負(fù)責(zé)操作數(shù)據(jù)庫(kù),執(zhí)行對(duì)應(yīng)的SQL語(yǔ)句抑诸,進(jìn)行數(shù)據(jù)的增刪改查
V:View視圖層烂琴,每當(dāng)用戶操作了界面,如果需要進(jìn)行業(yè)務(wù)的處理蜕乡,都會(huì)通過(guò)網(wǎng)絡(luò)請(qǐng)求奸绷,去請(qǐng)求后端的服務(wù)器,此時(shí)层玲,我們的這個(gè)請(qǐng)求就會(huì)被后端的app.js這個(gè)入口文件所監(jiān)聽(tīng)到
C:Controller層号醉,業(yè)務(wù)邏輯處理層反症,在這個(gè)模塊中封裝了一些具體業(yè)務(wù)邏輯處理的邏輯代碼
處理過(guò)程:app.js =>router.js =>Controler層 => Model層
App.js:項(xiàng)目的入口文件,一切的請(qǐng)求都要先進(jìn)入這里進(jìn)行處理
Router.js:路由分發(fā)處理模塊畔派,只負(fù)責(zé)分發(fā)路由
MVVM
MVVM是前端視圖層的分層開(kāi)發(fā)思想铅碍,主要把每個(gè)頁(yè)面分成了M、V和VM线椰,其中VM是MVVM的核心胞谈,因?yàn)閂M是M和V之間的調(diào)度者,前端頁(yè)面中使用MVVM的思想憨愉,是為了讓我們開(kāi)發(fā)更加方便烦绳,因?yàn)镸VVM提供了數(shù)據(jù)的雙向綁定。(確切地說(shuō)是由VM提供的)
M:保存的是每個(gè)頁(yè)面中單獨(dú)的數(shù)據(jù)
V:每個(gè)頁(yè)面中的HTML結(jié)構(gòu)
VM:充當(dāng)M和V的調(diào)度者莱衩,分割了M和V爵嗅,每當(dāng)V層需要獲取M層的數(shù)據(jù)或者M(jìn)層需要保存數(shù)據(jù)的時(shí)候都必須由VM做中間的處理娇澎。