状态 (State) 管理参考
介绍 Flutter 应用中状态管理的不同方式。
状态管理是一个相当复杂的话题。如果你在浏览后发现一些问题并未得到解答,或者并不适用于你的具体需求场景,自信些,你的实现就是对的。
通过下面的资源了解更多的信息,其中有很多内容都是由社区(第三方)提供。
总体概览
#在选择一个具体内容前,你可以先查看以下几项。
-
状态管理的介绍。这是本篇内容的总起。(当你直接跳转到了该页面,但错过了其他页面时,可以先从这里开始阅读)
-
Flutter 实用状态管理 (Pragmatic State Management in Flutter),来自 Google I/O 2019 的介绍视频。
-
Flutter 架构实例 (Flutter Architecture Samples), Brian Egan 著。
内置的方式
#setState
#
用于 Widget 临时状态的基础方式。
-
为你的 Flutter 应用添加交互 (Adding interactivity to your Flutter app),一篇 Flutter 的教程。
-
Flutter 中的基础状态管理 (Basic state management in Google Flutter), Agung Surya 著。
ValueNotifier 和 InheritedNotifier
#
一种完全使用 Flutter 提供的 API 来更新状态并通知 UI 更新的方式。
-
使用 ValueNotifier 与 InheritedNotifier 进行状态管理 (State Management using ValueNotifier and InheritedNotifier),Tadas Petra 著。
InheritedWidget 和 InheritedModel
#
Widget tree 中不同层级间的 widget 通信的基础方法。这是诸如 package:provider 等众多方法的底层实现。
以下讲师指导的视频 workshop 介绍了如何使用 InheritedWidget:
其他有用的文档包括:
-
使用 InheritedWidgets 管理 Flutter 应用状态 (Managing Flutter Application State With InheritedWidgets), Hans Muller 著。
-
继承 Widgets (Inheriting Widgets), Mehmet Fidanboyly 著。
-
Widget - State - Context - InheritedWidget,Didier Bolelens 著。
社区提供的 package
#根据应用的复杂度与团队的偏好,你可能会发现采用状态管理 package 很有帮助。状态管理 package 通常有助于减少样板代码、提供专门的调试工具,并能促成更清晰、更一致的应用架构。
Flutter 社区提供了种类繁多的状态管理 package。最适合你应用的选择,往往取决于应用的复杂度、团队的偏好,以及你需要解决的具体问题。
要开始探索可用的选项,请查看 pub.dev 上的 #state-management
主题,并细化搜索以找到符合你需求的 package。
除非另有说明,本文档之所提及适用于 Flutter 3.44.0 版本。本页面最后更新时间:2026-06-13。查看文档源码 或者 为本页面内容提出建议。