首頁技術文章正文

MVVM和MVC分別是什么?有什么區(qū)別?使用場景是什么?

更新時間:2021-10-15 來源:黑馬程序員 瀏覽量:

IT培訓班


1.MVVM與MVC的定義

什么是MVVM?

MVVM即Model-View-ViewModel的簡寫,即模型-視圖-視圖模型,模型(Model)指的是后端傳遞的數(shù)據(jù),視圖(View)指的是所看到的頁面,視圖模型(ViewModel)是mvvm模式的核心,它是連接view和model的橋梁。它有兩個方向:

一是將模型(Model)轉化成視圖(View),即將后端傳遞的數(shù)據(jù)轉化成所看到的頁面,實現(xiàn)的方式是:數(shù)據(jù)綁定;

二是將視圖(View)轉化成模型(Model),即將所看到的頁面轉化成后端的數(shù)據(jù)。實現(xiàn)的方式是:DOM事件監(jiān)聽,這兩個方向都實現(xiàn)的,我們稱之為數(shù)據(jù)的雙向綁定。

什么是MVC?

MVC是Model-View-Controller的簡寫。即模型-視圖-控制器。M和V指的意思和MVVM中的M和V意思一樣。C即Controller指的是頁面業(yè)務邏輯,使用MVC的目的就是將M和V的代碼分離。MVC是單向通信。也就是View跟Model,必須通過Controller來承上啟下。


2.使用場景

主要就是MVC中Controller演變成MVVM中的viewModel,MVVM主要解決了MVC中大量的DOM操作使頁面渲染性能降低,加載速度變慢,影響用戶體驗,vue數(shù)據(jù)驅動,通過數(shù)據(jù)來顯示視圖層而不是節(jié)點操作,

場景:數(shù)據(jù)操作比較多的場景,需要大量操作DOM元素時,采用MVVM的開發(fā)方式,會更加便捷,讓開發(fā)者更多的精力放在數(shù)據(jù)的變化上,解放繁瑣的操作DOM元素。

3.MVC和MVVM的區(qū)別

MVC和MVVM其實區(qū)別并不大,都是一種設計思想, MVC和MVVM的區(qū)別并不是VM完全取代了C,只是在MVC的基礎上增加了一層VM,不過是弱化了C的概念,ViewModel存在目的在于抽離Controller中展示的業(yè)務邏輯,而不是替代Controller,其它視圖操作業(yè)務等還是應該放在Controller中實現(xiàn),也就是說MVVM實現(xiàn)的是業(yè)務邏輯組件的重用,使開發(fā)更高效,結構更清晰,增加代碼的復用性。



猜你喜歡

JavaScript中l(wèi)et和var和const有什么區(qū)別?

v-show和v-if有什么區(qū)別?

什么是閉包函數(shù)?如何實現(xiàn)?

黑馬程序員HTML&JS+前端開發(fā)課程

分享到:
在線咨詢 我要報名
和我們在線交談!