跳至主要内容

状态管理方法列表

状态管理是一个复杂的话题。如果您觉得某些问题没有得到解答,或者这些页面上描述的方法不适用于您的用例,那您可能是对的。

在以下链接中了解更多信息,其中许多链接是由 Flutter 社区贡献的

概览

#

在选择方法之前需要复习的内容。

Provider

#

Riverpod

#

Riverpod 的工作方式与 Provider 类似。它提供编译时安全性以及测试功能,而无需依赖 Flutter SDK。

setState

#

用于小部件特定、短暂状态的低级方法。

ValueNotifier & InheritedNotifier

#

仅使用 Flutter 提供的工具来更新状态并通知 UI 更改的方法。

InheritedWidget & InheritedModel

#

在小部件树中用于在祖先和小部件之间进行通信的低级方法。这是 provider 和许多其他方法在底层使用的机制。

以下由讲师主导的视频工作坊介绍了如何使用 InheritedWidget


如何使用继承的小部件管理应用程序状态

其他有用的文档包括

June

#

一个轻量级且现代的状态管理库,专注于提供类似于 Flutter 内置状态管理的模式。

Redux

#

一种状态容器方法,许多 Web 开发人员都熟悉。

Fish-Redux

#

Fish Redux 是一个基于 Redux 状态管理的组合式 Flutter 应用程序框架。它适用于构建中大型应用程序。

BLoC / Rx

#

一系列基于流/可观察对象的模式。

GetIt

#

一种基于服务定位器的状态管理方法,不需要 BuildContext

MobX

#

一个基于可观察对象和反应的流行库。

Dart Board

#

一个用于 Flutter 的模块化功能管理框架。Dart Board 旨在帮助封装和隔离功能,包括示例/框架、小型内核以及许多现成的解耦功能,例如调试、日志记录、身份验证、redux、定位器、粒子系统等等。

Flutter 命令

#

使用命令模式并基于 ValueNotifiers 的反应式状态管理。最适合与 GetIt 结合使用,但也可以与 Provider 或其他定位器一起使用。

Binder

#

一个以 InheritedWidget 为核心的状态管理包。部分灵感来自 recoil。此包促进了关注点分离。

GetX

#

一个简化的反应式状态管理解决方案。

states_rebuilder

#

一种将状态管理与依赖注入解决方案和集成路由器相结合的方法。有关更多信息,请参阅以下信息

Triple 模式(分段状态模式)

#

Triple 是一种状态管理模式,它使用 StreamsValueNotifier。这种机制(绰号为“triple”,因为流始终使用三个值:ErrorLoadingState)基于 分段状态模式

有关更多信息,请参阅以下资源

solidart

#

一个简单但功能强大的状态管理解决方案,灵感来自 SolidJS。

flutter_reactive_value

#

flutter_reactive_value 库可能是 Flutter 中最简单的状态管理解决方案。它可以帮助 Flutter 初学者为他们的 UI 添加响应式功能,而无需使用之前描述的复杂机制。flutter_reactive_value 库在 ValueNotifier 上定义了 reactiveValue(BuildContext) 扩展方法。此扩展允许 Widget 获取 ValueNotifier 的当前值,并订阅 WidgetValueNotifier 值变化的响应。如果 ValueNotifier 的值发生变化,Widget 就会重建。

Elementary

#

Elementary 是一种简单可靠的方法,用于使用 Flutter 中的 MVVM 构建应用程序。它提供了纯 Flutter 体验,具有清晰的职责代码分离、高效的重建、易于测试以及提高团队生产力等优势。