mvc和mvvm模式的理解與區別

2021-10-09 15:23:27 字數 1337 閱讀 6468

幾乎所有的專案都在做這麼一件事:將資料展示給使用者看,並處理使用者對介面的操作。

mvc的思想:一句話描述就是controller負責將model的資料用view顯示出來,換句話說就是在controller裡面把model的資料賦值給view,比如在controller中寫document.getelementbyid("box").innerhtml = data.title

m(模型)

model(模型):是應用程式中用於處理應用程式資料邏輯的部分。通常模型物件負責在資料庫中訪問資料。

v(檢視)

view(檢視):是應用程式中處理資料顯示的部分。通常檢視是依據模型資料建立的。

c(控制器)

controller(控制器):是應用程式中處理使用者互動的部分。通常控制器負責從檢視讀取資料,控制使用者輸入,並向模型傳送資料。

總的來說,view是負責頁面的繪製、model是負責資料的管理、而controller是負責這倆者之間的互動,也就相當於協調者

與我們之前分析過mvc工作模式一樣,m是訪問資料、v是資料的顯示,那麼vm呢?在mvc的時代專案的資料還是比較簡單的,沒有現在那麼複雜。我們理所應當的,將「解析資料」這個問題就交給c來完成了,也就是類似document.getelementbyid("box").innerhtml = data.title

這種的操作。但是現在資料變的複雜了,如果繼續將這些操作放到了controller裡面,那麼controller就將變得相當臃腫。還有相當重要的一點:controller被設計出來並不是處理 資料解析 。

controller的使命

管理自己的生命週期;

處理controller之間的跳轉;

實現controller容器。

這裡面根本沒有「資料解析」這一項,所以顯然,資料解析也不應該由controller來完成。那麼

mvc就需要公升級了,在mvc的基礎上新增了viewmodel,弱化了controller的負擔。所以mvvm就這樣誕生了!

mvc和mvvm的區別

mvc和mvvm的區別並不是vm完全取代了c,viewmodel存在目的在於抽離controller中展示的業務邏輯,而不是替代controller它還是存在,在其它檢視操作業務等還是應該放在controller中實現。也就是說mvvm實現的是業務邏輯元件的重用。

mvvm通過資料來顯示檢視層而不是節點操作,vm通過資料雙向繫結來實現的,而在像c那樣通過dom操作實現。

mvvm解決了mvc中大量的dom操作使頁面渲染效能降低,載入速度變慢,影響使用者體驗

mvvm的優勢在於不用親自操作dom, 資料是響應式的, 一旦資料變化, 自動更新介面

MVC與MVVM的理解

mvc,mvp,mvvm是三種常見的前端架構模式,通過分離關注點來改進 組織方式。mvc模式是mvp,mvvm模式的基礎,這兩種模式更像是mvc模式的優化改良版,他們三個的mv即model,view都是相同的,不同的是mv之間的橋梁連線部分。本文是對的乙個總結。mvc允許在不改變檢視的情況下改變檢視...

MVVM的理解,及MVVM與MVC的區別

model 很簡單,就是業務邏輯相關的資料物件,通常從資料庫對映而來,我們可以說是與資料庫對應的model。view 也很簡單,就是展現出來的使用者介面。基本上,絕大多數軟體所做的工作無非就是從資料儲存中讀出資料,展現到使用者介面上,然後從使用者介面接收輸入,寫入到資料儲存裡面去。所以,對於資料儲存...

MVC 和 MVVM 設計模式

mvc模式 mvc即model view controller。他是1970年代被引入到軟體設計大眾的。mvc模式致力於關注點的切分,這意味著model和controller的邏輯是不與使用者介面 view 掛鉤的。因此,維護和測試程式變得更加簡單容易。mvc設計模式將應用程式分離為3個主要的方面 ...