首頁>
5
回覆列表
  • 1 # 樓盤那我k

    你好,MVI(Model-View-Intent)是一種架構模式,用於開發用戶界面。它是基於MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)模式的演變而來。

    MVI架構的核心思想是將用戶界面的狀態表示為不可變的數據模型(Model),並通過Intent對象來表示用戶界面的交互意圖。用戶界面通過觀察Model的變化來更新自身的狀態,並將用戶的交互意圖通過Intent對象發送給業務邏輯層處理。

    MVI架構的主要組成部分包括:

    1. Model:不可變的數據模型,用於表示用戶界面的狀態。

    2. View:負責展示用戶界面,並通過觀察Model的變化來更新自身的狀態。

    3. Intent:表示用戶界面的交互意圖,包括用戶的輸入和操作。

    4. Reducer:負責根據接收到的Intent對象和當前的Model狀態,計算出新的Model狀態。

    5. Action:表示業務邏輯層的操作,用於響應用戶的交互意圖並更新Model狀態。

    MVI架構的優點包括:

    1. 易於測試:由於Model是不可變的,可以方便地編寫單元測試來驗證Model的狀態變化。

    2. 擴展性:通過將用戶界面的狀態和交互意圖明確地分離出來,可以方便地修改和擴展用戶界面的功能。

    3. 可預測性:由於Model是不可變的,每次更新都是通過Reducer計算得出的,因此可以準確地預測用戶界面的狀態變化。

    需要注意的是,MVI架構並不是適用於所有情況的通用解決方案,開發者需要根據具體的項目需求和團隊情況來選擇適合的架構模式。

  • 2 # 用戶5663755066964

    MVI在架構分層上和MVP沒有本質區別,但區別主要體現在架構風格和編程思想上

    MVI風格

    面向意圖,響應式編程

    狀態模式 + 流處理思想 = 單向不可變數據流

    統一狀態源

    恢復現場:進程重生後,堆棧中返回,屏幕旋轉等

    可調試、可重現。日誌中記錄輸入、狀態、輸出就可以據此復現問題

    可測試。

    缺點:對於初狀態需要關注