跳至主要內容

狀態管理方法的列表

狀態管理是一個複雜的主題。如果您覺得某些問題尚未獲得解答,或者這些頁面上描述的方法不適用於您的使用案例,那您可能是對的。

請參考以下連結以了解更多資訊,其中許多是由 Flutter 社群貢獻的

一般概述

#

選擇方法前需要考慮的事項。

Provider

#

Riverpod

#

Riverpod 的運作方式與 Provider 類似。它提供編譯安全性,並在不依賴 Flutter SDK 的情況下進行測試。

setState

#

用於 widget 特定、短暫狀態的底層方法。

ValueNotifier & InheritedNotifier

#

一種僅使用 Flutter 提供的工具來更新狀態並將變更通知 UI 的方法。

InheritedWidget & InheritedModel

#

用於在 widget 樹中的祖先和子代之間進行通訊的底層方法。這就是 provider 和許多其他方法在底層所使用的。

以下由講師指導的影片工作坊涵蓋如何使用 InheritedWidget


如何使用繼承 widget 管理應用程式狀態

其他有用的文件包括

June

#

一個輕量且現代的狀態管理函式庫,專注於提供類似 Flutter 內建狀態管理的模式。

Redux

#

許多網頁開發人員熟悉的狀態容器方法。

Fish-Redux

#

Fish Redux 是一個基於 Redux 狀態管理的組裝式 Flutter 應用程式框架。它適用於建置中大型應用程式。

BLoC / Rx

#

一系列基於串流/可觀察的模式。

GetIt

#

一個基於服務定位器的狀態管理方法,不需要 BuildContext

MobX

#

一個基於可觀察對象和反應的熱門函式庫。

Dart Board

#

一個適用於 Flutter 的模組化功能管理框架。Dart Board 旨在幫助封裝和隔離功能,包括範例/框架、小型核心和許多現成的分離功能,例如偵錯、記錄、驗證、redux、定位器、粒子系統等等。

Flutter Commands

#

使用命令模式且基於 ValueNotifiers 的反應式狀態管理。最好與 GetIt 搭配使用,但也可以與 Provider 或其他定位器一起使用。

Binder

#

一個在其核心使用 InheritedWidget 的狀態管理套件。部分靈感來自 recoil。此套件提倡關注點分離。

GetX

#

一個簡化的反應式狀態管理解決方案。

states_rebuilder

#

一種將狀態管理與相依性注入解決方案和整合式路由器結合的方法。如需更多資訊,請參閱以下資訊

Triple Pattern (分段狀態模式)

#

Triple 是一種用於狀態管理的模式,它使用 StreamsValueNotifier。此機制(之所以暱稱為triple,是因為串流始終使用三個值:ErrorLoadingState),基於分段狀態模式

如需更多資訊,請參考以下資源

solidart

#

一個靈感來自 SolidJS 的簡單但功能強大的狀態管理解決方案。

flutter_reactive_value

#

flutter_reactive_value 函式庫可能為 Flutter 中的狀態管理提供最不複雜的解決方案。它可能可以幫助 Flutter 新手將反應性新增至 UI,而不會像先前描述的機制那樣複雜。flutter_reactive_value 函式庫在 ValueNotifier 上定義了 reactiveValue(BuildContext) 擴充方法。此擴充功能允許 Widget 擷取 ValueNotifier 的目前值,並將 Widget 訂閱到 ValueNotifier 的值變更。如果 ValueNotifier 的值變更,Widget 會重新建置。

Elementary

#

Elementary 是一種在 Flutter 中使用 MVVM 建置應用程式的簡單且可靠的方法。它透過責任區分、高效的重新建置、輕鬆的測試能力和提升團隊生產力,提供純粹的 Flutter 體驗。