MVC与MVVM的区别
MVC與MVVM
MVC是Model-View- Controller的簡(jiǎn)寫(xiě):模型(model) 視圖(view) 控制器(controller)
? Model(模型):是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。
? View(視圖):是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。
? Controller(控制器):是應(yīng)用程序中處理用戶(hù)交互的部分。
? 模型(Model)指的是后端傳遞的數(shù)據(jù)。視圖(View)指的是所看到的頁(yè)面。C即Controller指的是頁(yè)面業(yè)務(wù)邏輯。
? mvc的好處主要有四點(diǎn): 耦合性低; 重用性高; 部署快,生命周期成本低; 可維護(hù)性高。
? 但它同時(shí)也存在一些問(wèn)題:不適合小型,中等規(guī)模的應(yīng)用程序; 視圖與控制器間的過(guò)于緊密的連接并且降低了視圖對(duì)模型數(shù)據(jù)的訪問(wèn)
MVVM即Model-View-ViewModel的簡(jiǎn)寫(xiě) :Model ---- View ---- VM(ViewModel)
? **模型(Model)**指的是后端傳遞的數(shù)據(jù)。**視圖(View)**指的是所看到的頁(yè)面。**視圖模型(ViewModel)**是mvvm模式的核心
? mvvm的好處主要體現(xiàn)在兩點(diǎn):數(shù)據(jù)驅(qū)動(dòng) ; VM提供數(shù)據(jù)的雙向綁定
MVC與MVVM的區(qū)別
? 使用MVC的目的就是將M和V的代碼分離,MVC是單向通信。也就是View跟Model,必須通過(guò)Controller來(lái)承上啟下。MVC和MVVM的區(qū)別并不是VM完全取代了C,只是在MVC的基礎(chǔ)上增加了一層VM,只不過(guò)是弱化了C的概念,ViewModel存在目的在于抽離Controller中展示的業(yè)務(wù)邏輯,而不是替代Controller,其它視圖操作業(yè)務(wù)等還是應(yīng)該放在Controller中實(shí)現(xiàn);而MVVM是連接view和model的橋梁,它有兩個(gè)方向:一是將模型(Model)轉(zhuǎn)化成視圖(View),即將后端傳遞的數(shù)據(jù)轉(zhuǎn)化成所看到的頁(yè)面。實(shí)現(xiàn)的方式是:數(shù)據(jù)綁定。二是將視圖(View)轉(zhuǎn)化成模型(Model),即將所看到的頁(yè)面轉(zhuǎn)化成后端的數(shù)據(jù).實(shí)現(xiàn)的方式是:DOM 事件監(jiān)聽(tīng)。這兩個(gè)方向都實(shí)現(xiàn)的,我們稱(chēng)之為數(shù)據(jù)的雙向綁定。
? VVM實(shí)現(xiàn)的是業(yè)務(wù)邏輯組件的重用,使開(kāi)發(fā)更高效,結(jié)構(gòu)更清晰,增加代碼的復(fù)用性。使開(kāi)發(fā)更高效,結(jié)構(gòu)更清晰,增加代碼的復(fù)用性。
?
總結(jié)
以上是生活随笔為你收集整理的MVC与MVVM的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaScript-初识jQuery及
- 下一篇: c++ 指针拼接字符串_字符串拼接+和c