mvvm模式和mvc模式的區(qū)別是:1、MVC中Controller演變成MVVM中的ViewModel;2、MVVM通過(guò)數(shù)據(jù)來(lái)顯示視圖層而不是節(jié)點(diǎn)操作;3、MVVM主要解決了MVC中大量的dom操作使頁(yè)面渲染性能降低。
mvvm模式和mvc模式的區(qū)別是:
一,什么是MVVM?
在MVVM框架下視圖和模型是不能直接通信的,只能通過(guò)ViewModel進(jìn)行交互,它能夠監(jiān)聽(tīng)到數(shù)據(jù)的變化,然后通知視圖進(jìn)行自動(dòng)更新,而當(dāng)用戶操作視圖時(shí),VM也能監(jiān)聽(tīng)到視圖的變化,然后通知數(shù)據(jù)做相應(yīng)改動(dòng),這實(shí)際上就實(shí)現(xiàn)了數(shù)據(jù)的雙向綁定。并且V和VM可以進(jìn)行通信。
圖片示例如下:
MVVM模式的優(yōu)點(diǎn):
低耦合:View可以獨(dú)立于Model變化和修改,一個(gè)ViewModel可以綁定到不同的View上,當(dāng)View變化的時(shí)候Model可以不變,當(dāng)Model變化的時(shí)候View也可以不變。
可重用性: 可以把一些視圖邏輯放在一個(gè)ViewModel里面,讓很多View重用這段視圖邏輯。
獨(dú)立開(kāi)發(fā): 開(kāi)發(fā)人員可以專注于業(yè)務(wù)邏輯和數(shù)據(jù)的開(kāi)發(fā),設(shè)計(jì)人員可以專注于頁(yè)面的設(shè)計(jì)。
二,什么是MVC?
MVC是應(yīng)用最廣泛的軟件架構(gòu)之一,一般MVC分為:Model(模型),View(視圖),Controller(控制器)。 這主要是基于分層的目的,讓彼此的職責(zé)分開(kāi).View一般用過(guò)Controller來(lái)和Model進(jìn)行聯(lián)系。Controller是Model和View的協(xié)調(diào)者,View和Model不直接聯(lián)系?;径际菃蜗蚵?lián)系。M和V指的意思和MVVM中的M和V意思一樣。C即Controller指的是頁(yè)面業(yè)務(wù)邏輯。MVC是單向通信。也就是View跟Model,必須通過(guò)Controller來(lái)承上啟下。
三,mvc與mvvm的區(qū)別:
MVC和MVVM的區(qū)別并不是VM完全取代了C,ViewModel存在目的在于抽離Controller中展示的業(yè)務(wù)邏輯,而不是替代Controller,其它視圖操作業(yè)務(wù)等還是應(yīng)該放在Controller中實(shí)現(xiàn)。也就是說(shuō)MVVM實(shí)現(xiàn)的是業(yè)務(wù)邏輯組件的重用。
– MVC中Controller演變成MVVM中的ViewModel
-MVVM通過(guò)數(shù)據(jù)來(lái)顯示視圖層而不是節(jié)點(diǎn)操作
-MVVM主要解決了MVC中大量的dom操作使頁(yè)面渲染性能降低,加載速度變慢,影響用戶體驗(yàn)