以前不懂前端的工程化開發(之前都是那種一個html混合一大堆代碼的那種開發)。最近看了一下MVVM前端架構,對比MVC,說一下本身的理解:MVVM架構本質上仍舊是MVC的變種,或者說,是MVC中VIEW的進一步MVC架構的設計。html
一、view表明視圖,即咱們所看到的那一層。MVC架構中的view較爲寬泛,泛指全部前端的組件和前端的邏輯,而隨着前端所能承擔的視圖以外的數據處理能力愈來愈強,view層也越來越遠離其原本的劃分意義,MVVM架構即是對MVC架構中的view層以其自身的架構設計思路進行的進一步劃分。MVVM架構中view層即不具備視圖之外的數據操做功能的MVC架構view層;
二、model層即模型層,但從功能上來講,應該叫「模型」處理層。「模型」必然是某種具象的抽象表示,程序能夠經過調用改模型,而後加以操做(例如賦值),使得「模型」從一種抽象再次變爲具象。MVC架構中model層多以指代對數據庫中數據的抽象(固然包括其餘)進行操做,操做方法匯聚到這一層。而MVVM架構中多以是指代view層中具體視圖模塊(dom)所承擔任務的具體方法的抽象(也就是說前端的方法聚合在同一層);
三、controller層和view-model層雖然說名稱不一樣,但做用相同,便是起到某種「承接」的做用,之因此名稱不一樣,是由於兩者的「承接」手段存在差別。controller層是應用程序中處理用戶交互的部分。一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據,而view-model則相對來講功能較爲單一,僅僅是經過設置,讓自身監聽視圖dom控件、綁定model層方法,讓兩者的內容相互對應。前端