Home >> Blog >> Model–view–viewmodel MVVM 簡介
在完成手中的SEO優化案件後,讓我們的注意力轉移到MVVM。
Model–view–viewmodel MVVM 簡介
型號說明如下:
- 模型:(可重用程式碼 - 數據)封裝數據和應用程式域行為的業務對象,簡單地保存數據。
- 查看:(平台特定程式碼 - 用戶界面)用戶看到的內容,格式化數據。
- VIEWMODEL:(可重用程式碼 - 邏輯)模型和視圖之間的連結,或者它從模型中檢索數據並將其公開給視圖。這是專為 View 設計的模型。
注意:模型和視圖模型之間的連結是操作數據,視圖模型和視圖之間的連結是雙向數據綁定。
基本介紹: 構建
特徵:
- 應用程式的生命週期狀態將保持不變。
- 該應用程式將與用戶離開它的位置相同。
- UI 組件遠離業務邏輯。
- 業務邏輯遠離資料庫操作。
- 易於理解和閱讀。
基本示例: 我們希望以紫色顯示姓名(未以正確的格式書寫,正確的長度)或如果一個人的年齡 > 18 歲,則顯示紫色,如果一個人的年齡 < 18 歲,則顯示粉紅色,然後紫色和粉紅色的邏輯將出現在 ViewModel 中。
摘要: 從伺服器,獲取數據(在模型對像中可用),視圖模型讀取模型對象,然後便於在視圖上輕鬆呈現數據。
MVVM 和 MVC 之間的主要區別如下:
MVVM MVC
Model 有點類似於 MVC,但這裡我們有 ViewModel,它們被傳遞給視圖,所有邏輯都在 ViewModel 中,因此沒有控制器。示例:Knockout.js
在這種模式中,我們的模型是沒有程式碼而只有屬性的基本對象、有助於表示項(HTML、WinForms 等)的視圖、客戶端刪除和專注於邏輯部分的控制器。示例:ASP.NET MVC、Angular
在 MVVM 中,您的 DeletePerson 將被取消您的視圖模型 我們有一個帶有 Action DeletePerson 的 PersonController 來刪除一個人
我們在客戶端,所以我們可以保持對象並在非斷開狀態下執行更多邏輯。
MVC 通常用於事務性和斷開連接的情況,例如伺服器端 Web。在 ASP MVC 中,我們通過線路發送視圖,然後與客戶端的事務結束。
優點:
- 可維護性——可以保持敏捷並持續快速發布後續版本。
- 可擴展性——能夠替換或添加新的程式碼。
- 可測試性——更容易針對核心邏輯編寫單元測試。
- 透明通信——視圖模型為視圖控制器提供了一個透明接口,它用於填充視圖層並與模型層交互,從而在應用程式的各層之間實現透明通信。
缺點:
- 有些人認為對於簡單的 UI,MVVM 可能是矯枉過正。
- 在更大的情況下,可能很難設計 ViewModel。
- 當我們有復雜的數據綁定時,調試會有點困難。