状态管理方法
介绍 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 主题,并优化搜索以找到符合你需求的软件包。