Home >> Blog >> Model–view–viewmodel MVVM 簡介

在完成手中的SEO優化案件後,讓我們的注意力轉移到MVVM。

Model–view–viewmodel MVVM 簡介

型號說明如下:

  • 模型:(可重用程式碼 - 數據)封裝數據和應用程式域行為的業務對象,簡單地保存數據。
  • 查看:(平台特定程式碼 - 用戶界面)用戶看到的內容,格式化數據。
  • VIEWMODEL:(可重用程式碼 - 邏輯)模型和視圖之間的連結,或者它從模型中檢索數據並將其公開給視圖。這是專為 View 設計的模型。

注意:模型和視圖模型之間的連結是操作數據,視圖模型和視圖之間的連結是雙向數據綁定。

基本介紹: 構建

模型視圖視圖模型(MVVM)簡介

特徵:

  • 應用程式的生命週期狀態將保持不變。
  • 該應用程式將與用戶離開它的位置相同。
  • 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。
  • 當我們有復雜的數據綁定時,調試會有點困難。

data binding

提供

架構

架構

架構

架構

架構

cellviewmodels

to

to

to

to

to

to

to

to

to

to

to

to

to

to

to

to

to

to

to

to

mvvm

mvvm

mvvm

mvvm

mvvm

mvvm

observe

observable

api

livedata

value

execute

public

類別

nil

activity

activity

activity

activity

string

swift

app

app

app

app

var

mvp

propertychanged

func

事件

事件

事件

透過

透過

透過

透過

透過

透過

透過

透過

透過

透過

in

in

in

in

in

in

in

in

in

in

ui

ui

ui

ui

ui

ui

ui

ui

ui

ui

userdata

android

android

android

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel

viewmodel