1樓:匿名使用者
一、主體不同
1、viewmodel:檢視模型是暴露公共屬性和命令的檢視的抽象。
2、view:檢視是使用者在螢幕上看到的結構、佈局和外觀(ui)。
3、model:指代表真實狀態內容的領域模型(物件導向),或指代表內容的資料訪問層(以資料為中心)。
二、特點不同
1、viewmodel:一個viewmodel可以繫結到不同的"view"上。
2、view:可以獨立於model變化和修改。
3、model:view變化的時候model可以不變,當model變化的時候view也可以不變。
三、作用不同
1、viewmodel:可以取出 model 的資料同時幫忙處理 view 中由於需要展示內容而涉及的業務邏輯。
2、view:用於展示資料。
3、model:用於宣告實體,定義資料。
2樓:吉祥二進位制
簡單的說,viewmodel就是view與model的聯結器,view與model通過viewmodel實現雙向繫結。
model:很簡單,就是業務邏輯相關的資料物件,通常從資料庫對映而來,我們可以說是與資料庫對應的model。
view:也很簡單,就是展現出來的使用者介面。
基本上,絕大多數軟體所做的工作無非就是從資料儲存中讀出資料,展現到使用者介面上,然後從使用者介面接收輸入,寫入到資料儲存裡面去。所以,對於資料儲存(model)和介面(view)這兩層,大家基本沒什麼異議。但是,如何把model展現到view上,以及如何把資料從view寫入到model裡,不同的人有不同的意見。
mvc派的看法是,介面上的每個變化都是一個事件,我只需要針對每個事件寫一堆**,來把使用者的輸入轉換成model裡的物件就行了,這堆**可以叫controller。
而mvvm派的看法是,我給view裡面的各種控制元件也定義一個對應的資料物件,這樣,只要修改這個資料物件,view裡面顯示的內容就自動跟著重新整理,而在view 裡做了任何操作,這個資料物件也跟著自動更新,這樣多美。所以:
viewmodel:就是與介面(view)對應的model。因為,資料庫結構往往是不能直接跟介面控制元件一一對應上的,所以,需要再定義一個資料物件專門對應view上的控制元件。
而viewmodel的職責就是把model物件封裝成可以顯示和接受輸入的介面資料物件。
至於viewmodel的資料隨著view自動重新整理,並且同步到model裡去,這部分**可以寫成公用的框架,不用程式設計師自己操心了。
3樓:匿名使用者
在mvc裡,view是可以直接訪問model的!從而,view裡會包含model資訊,不可避免的還要包括一些業務邏輯。 mvc模型關注的是model的不變,所以,在mvc模型裡,model不依賴於view,但是 view是依賴於model的。
不僅如此,因為有一些業務邏輯在view裡實現了,導致要更改view也是比較困難的,至少那些業務邏輯是無法重用的。
mvvm在概念上是真正將頁面與資料邏輯分離的模式,它把資料繫結工作放到一個js裡去實現,而這個js檔案的主要功能是完成資料的繫結,即把model繫結到ui的元素上。
有人做過測試:使用angular(mvvm)代替backbone(mvc)來開發,**可以減少一半。
此外,mvvm另一個重要特性,雙向繫結。它更方便你同時維護頁面上都依賴於某個欄位的n個區域,而不用手動更新它們。
在linux系統下vi命令模式和編輯模式如何切換
vi編輯器是linux下用的最多也是功能最強大的文字編輯器,vi具有三種模式 命令模式 編輯模式以及末行模式,在最初使用vi開啟一個檔案的時候,處在命令模式下,這時使用命令i i a a o o都可以進入編輯模式,而想放回到命令模式只需要在編輯模式下敲擊esc鍵即可,如果有什麼不懂的話,可以看看 l...
xp安全模式正常模式下如何修改解析度
試一試在安全模式下重新安裝顯示卡驅動。如果是品牌機有驅動盤的話,在裝回去,驅動更新了效能基本也不會有多大提升。解除安裝顯示卡驅動,重灌原裝顯示卡驅動 在電腦桌面的空白處右擊 選擇 屬性 設定 螢幕解析度 但解析度調節要看電腦上的顯示卡驅動是否支援,如果解析度超出顯示卡驅動支援就會導致黑屏,需重新設定...
怎麼進入win7的安全模式?在安全模式下拷貝檔案會不會感染病毒(我老鄉的電腦有木馬)?謝謝
開機按f8就能進入安全模式了,安全模式下並不能保證你拷貝檔案不會感染病毒,因為要是之前已經染毒的檔案,即使你進安全模式下去拷貝也一樣還是帶毒的,所以拷貝檔案之前不放心,還是最好手動掃描一下病毒為好,當然,電腦裡所用的殺軟比較可靠,也及時更新了病毒庫,一直開著實時監控的話,電腦裡檔案帶毒的可能性還是比...