簡體   English   中英

Flutter 設計模式:有沒有頂推薦的?

[英]Flutter Design pattern : Are there any top recommended?

我來自 Android 開發背景,我是 Flutter 的新手,我了解它的基本層次結構小部件概念和庫。 就像 Android 有 MVP、MVVM 和 MVI 等設計模式一樣,Flutter 編程有什么流行的設計模式嗎?

Flutter 應用程序適用於狀態和流,據我所知,這里有兩種主要模式,redux 和 BLoC。

Redux:

Redux是一個Application State管理框架。 換句話說,它的主要目標是管理一個 State。 Redux 的架構圍繞以下原則:

  1. 單向數據流

  2. 一店

Store 就像 Redux 的協調器。 商店:

  • 僅存儲一個 State
  • 公開一個入口點,稱為調度,它只接受 arguments 中的動作
  • 公開一個 getter 來獲取當前的 State
  • 允許(取消)注冊以通知(通過 StreamSubscription)應用於 State 的任何更改
  • 將動作和存儲分派到第一個中間件
  • 將動作和當前的 state 分派給一個 Reducer(這可能是幾個 reducer 的外觀)

行動

操作是商店訪問點接受的唯一輸入類型。 中間件和 Reducer 使用 Actions 與當前 State 結合來處理一些 function,這可能導致修改 Z46A2A41CC6E552044816A2D04634554

行動只描述發生了什么

中間件

中間件是 function,通常旨在基於 Action 異步運行(但不一定)。 中間件僅使用 State(或作為觸發器的操作),但不會更改 State。

減速機

Reducer 通常是一個同步的 function,它基於組合 Action - State 進行一些處理。 處理的結果可能會導致新的 State。 減速機是唯一允許更改 State 的。

你可以在這里找到更多關於 redux 的信息

集團

BLoC 模式不需要任何外部庫或 package,因為它僅依賴於 Streams 的使用。 但是,對於更友好的功能(例如主題),它經常與RxDart package結合使用。

BLoC 模式依賴於:

流控制器

StreamController 公開 StreamSink 以將數據注入 Stream 和 Stream 以偵聽數據,在 Stream 中流動。

流生成器

StreamBuilder 是一個 Widget,它監聽 stream 並在 Stream 發出新數據時重建。

流訂閱

StreamSubscription 允許監聽 stream 發出的數據並做出反應。

塊提供者

BlocProvider 是一種方便的 Widget,通常用於保存 BLoC 並使其可供后代 Widget 使用。

這是一篇關於Flutter BLoc的文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM