状态管理方法
介绍在 Flutter 应用中管理状态的不同方法。
状态管理是一个复杂的话题。如果您觉得有些问题没有得到解答,或者这些页面描述的方法不适用于您的用例,那很可能是正确的。
请参阅以下资源以了解更多信息,其中许多资源均由 Flutter 社区贡献。
总览
#在选择方法之前需要考虑的事项。
- 状态管理简介,这是本节的开头(对于直接到达此“选项”页面的用户,并且错过了前面的页面)
- Flutter 中的实用状态管理,来自 Google I/O 2019 的视频
- Flutter 架构示例,作者:Brian Egan
内置方法
#setState
#
用于特定组件、临时状态的底层方法。
- 为您的 Flutter 应用添加交互性,Flutter 教程
- Google Flutter 中的基本状态管理,作者:Agung Surya
ValueNotifier 和 InheritedNotifier
#
一种仅使用 Flutter 提供的 API 来更新状态并通知 UI 更改的方法。
- 使用 ValueNotifier 和 InheritedNotifier 进行状态管理,作者:Tadas Petra
InheritedWidget 和 InheritedModel
#
用于在组件树中祖先和子组件之间进行通信的底层方法。 这就是 package:provider 和许多其他方法在底层使用的。
以下由讲师指导的视频研讨会介绍了如何使用 InheritedWidget
其他有用的文档包括
- InheritedWidget 文档
- 使用 InheritedWidget 管理 Flutter 应用程序状态,作者:Hans Muller
- 继承 Widget,作者:Mehmet Fidanboylu
- 有效使用 Flutter Inherited Widget,作者:Eric Windmill
- Widget - State - Context - InheritedWidget,作者:Didier Bolelens
社区提供的包
#根据您的应用复杂性和团队偏好,您可能会发现采用状态管理包很有用。状态管理包通常有助于减少样板代码,提供专门的调试工具,并有助于实现更清晰、更一致的应用程序架构。
Flutter 社区提供了各种各样的状态管理包。最适合您的应用的方案通常取决于应用的复杂性、团队偏好以及您需要解决的具体问题。
要开始探索可用的选项,请查看 #state-management 主题的 pub.dev 网站,并完善搜索以查找符合您需求的包。