M表示:
- Model代表數(shù)據(jù)模型,也可以在Model中定義數(shù)據(jù)修改和操作的業(yè)務(wù)邏輯。
V表示:
- View 很簡(jiǎn)單,就是用戶看到的視圖
VM表示:
- ViewModel監(jiān)聽模型數(shù)據(jù)的改變和控制視圖行為、處理用戶交互,簡(jiǎn)單理解就是一個(gè)同步View 和 Model的對(duì)象,連接Model和View
- ViewModel 只關(guān)心數(shù)據(jù)和業(yè)務(wù)的處理,不關(guān)心 View 如何處理數(shù)據(jù),在這種情況下,View和 Model 都可以獨(dú)立出來,任何一方改變了也不一定需要改變另一方,并且可以將一些可復(fù)用的邏輯放在一個(gè) ViewModel 中,讓多個(gè) View 復(fù)用這個(gè) ViewModel。
MVVM的理解:
- 對(duì)于 MVVM來說,其實(shí)最重要的并不是通過雙向綁定或者其他的方式將 View 與 ViewModel 綁定起來,而是通過 ViewModel 將視圖中的狀態(tài)和用戶的行為分離出一個(gè)抽象,這才是 MVVM 的精髓
- 在MVVM架構(gòu)下,View和 Model 之間并沒有直接的聯(lián)系,而是通過ViewModel進(jìn)行交互,Model和 ViewModel 之間的交互是雙向的, 因此View 數(shù)據(jù)的變化會(huì)同步到Model中,而Model 數(shù)據(jù)的變化也會(huì)立即反應(yīng)到View 上。
- ViewModel 通過雙向數(shù)據(jù)綁定把 View 層和 Model層連接了起來,而View和 Model 之間的同步工作完全是自動(dòng)的,無需人為干涉,因此開發(fā)者只需關(guān)注業(yè)務(wù)邏輯,不需要手動(dòng)操作DOM,不需要關(guān)注數(shù)據(jù)狀態(tài)的同步問題,復(fù)雜的數(shù)據(jù)狀態(tài)維護(hù)完全由 MVVM 來統(tǒng)一管理
MVVM特點(diǎn):
雙向綁定技術(shù),當(dāng)Model變化時(shí),View-Model會(huì)自動(dòng)更新,View也會(huì)自動(dòng)變化。很好做到數(shù)據(jù)的一致性,不用擔(dān)心,在模塊的這一塊數(shù)據(jù)是這個(gè)值,在另一塊就是另一個(gè)值了。所以 MVVM模式有些時(shí)候又被稱作:model-view-binder模式