這篇文章主要介紹了MVVM模式中ViewModel和View、Model有什麼區別?本文分別解釋了它們的功能和做用,而後總結了它之間的區別,須要的朋友能夠參考下程序員
Model:很簡單,就是業務邏輯相關的數據對象,一般從數據庫映射而來,咱們能夠說是與數據庫對應的model。數據庫
View:也很簡單,就是展示出來的用戶界面。框架
基本上,絕大多數軟件所作的工做無非就是從數據存儲中讀出數據,展示到用戶界面上,而後從用戶界面接收輸入,寫入到數據存儲裏面去。因此,對於數據存儲(model)和界面(view)這兩層,你們基本沒什麼異議。可是,如何把model展示到view上,以及如何把數據從view寫入到model裏,不一樣的人有不一樣的意見。url
MVC派的見解是,界面上的每一個變化都是一個事件,我只須要針對每一個事件寫一堆代碼,來把用戶的輸入轉換成model裏的對象就好了,這堆代碼能夠叫controller。雙向綁定
而MVVM派的見解是,我給view裏面的各類控件也定義一個對應的數據對象,這樣,只要修改這個數據對象,view裏面顯示的內容就自動跟着刷新,而在view 裏作了任何操做,這個數據對象也跟着自動更新,這樣多美。因此:對象
ViewModel:就是與界面(view)對應的Model。由於,數據庫結構每每是不能直接跟界面控件一一對應上的,因此,須要再定義一個數據對象專門對應view上的控件。而ViewModel的職責就是把model對象封裝成能夠顯示和接受輸入的界面數據對象。blog
至於viewmodel的數據隨着view自動刷新,而且同步到model裏去,這部分代碼能夠寫成公用的框架,不用程序員本身操心了。事件
簡單的說,ViewModel就是View與Model的鏈接器,View與Model經過ViewModel實現雙向綁定。(引用三聯,阮一峯)。get