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