狀態管理是一個複雜的主題。 如果你覺得有些問題還沒有獲得解答, 或是這些頁面所描述的方法 不適用於你的使用情境,那你很可能是對的。

你可以從以下資源獲得更多資訊, 其中許多內容來自 Flutter 社群的貢獻。

概覽

#

在選擇方法之前,建議先檢視以下內容。

內建方法

#

setState

#

這是用於元件(Widget)專屬、短暫狀態的低階方法。

ValueNotifierInheritedNotifier

#

這種方法僅使用 Flutter 提供的 API 來更新狀態並通知 UI 變更。

InheritedWidgetInheritedModel

#

這是用於在元件樹中 祖先與子元件之間溝通的低階方法。 package:provider 以及許多其他方法的底層實作都會用到這個機制。

以下這支由講師帶領的影片工作坊,介紹如何使用 InheritedWidget

Watch on YouTube in a new tab: "How to manage application state using inherited widgets"

其他實用文件包括:

社群提供的套件

#

根據你的應用程式複雜度以及團隊偏好, 你可能會覺得採用狀態管理套件很有幫助。 狀態管理套件通常能協助減少樣板程式碼、 提供專門的除錯工具,並有助於 建立更清晰且一致的應用程式架構。

Flutter 社群提供了各式各樣的狀態管理套件。 最適合你應用程式的選擇,通常取決於應用程式的複雜度、 團隊的偏好,以及你需要解決的具體問題。

想要開始探索可用的選項, 可以前往 pub.dev 網站上的 #state-management 主題, 並進一步篩選,找到符合你需求的套件。