狀態管理方法
介紹 Flutter 應用中管理狀態的不同方法。
狀態管理是一個複雜的主題。如果你覺得有些問題沒有得到解答,或者這些頁面上描述的方法不適用於你的用例,你的想法很可能是對的。
請從以下資源中瞭解更多資訊,其中許多資源是由 Flutter 社群貢獻的。
概覽
#選擇方法前需要複習的內容。
- 狀態管理簡介,這是本節的開篇(如果你直接進入此“選項”頁面而錯過了前面的頁面,可以檢視此文)
- Pragmatic State Management in Flutter(Flutter 中的實用狀態管理),來自 Google I/O 2019 的影片
- Flutter Architecture Samples(Flutter 架構示例),由 Brian Egan 提供
內建方法
#setState
#
用於特定於元件(Widget)的臨時狀態的底層方法。
- 為 Flutter 應用新增互動性,一份 Flutter 教程
- Basic state management in Google Flutter(Google Flutter 中的基礎狀態管理),由 Agung Surya 提供
ValueNotifier 和 InheritedNotifier
#
一種僅使用 Flutter 提供的 API 來更新狀態並通知 UI 更改的方法。
- State Management using ValueNotifier and InheritedNotifier(使用 ValueNotifier 和 InheritedNotifier 進行狀態管理),由 Tadas Petra 提供
InheritedWidget 和 InheritedModel
#
用於在 Widget 樹中的父元件與子元件之間進行通訊的底層方法。這也是 package:provider 及許多其他方法在底層所使用的機制。
以下講師指導的影片研討會涵蓋了如何使用 InheritedWidget
其他有用的文件包括
- InheritedWidget 文件
- Managing Flutter Application State With InheritedWidgets(使用 InheritedWidgets 管理 Flutter 應用狀態),由 Hans Muller 提供
- Inheriting Widgets(繼承 Widget),由 Mehmet Fidanboylu 提供
- Widget - State - Context - InheritedWidget,由 Didier Bolelens 提供
社群提供的軟體包
#根據應用的複雜程度和團隊的偏好,你可能會發現採用狀態管理軟體包很有用。狀態管理軟體包通常有助於減少樣板程式碼,提供專門的除錯工具,並有助於實現更清晰、一致的應用架構。
Flutter 社群提供了各種各樣的狀態管理軟體包。對於你的應用而言,最佳選擇通常取決於應用的複雜性、團隊的偏好以及你需要解決的具體問題。
要開始探索可用選項,請檢視 pub.dev 網站上的 #state-management 主題,並最佳化搜尋以找到符合你需求的軟體包。