没有 BLoC 的 Flutter 状态管理

Posted

技术标签:

【中文标题】没有 BLoC 的 Flutter 状态管理【英文标题】:Flutter state management without BLoC 【发布时间】:2021-04-14 10:16:25 【问题描述】:

我的问题是关于应用状态管理选择哪种方法。许多演练谈论 BLoC、RxDart、Redux 等。 我的目标是开发一个简单的应用程序,它有时会从服务器下载数据并继续使用本地存储(flutter 中的 SQL)来处理数据(CRUD 操作)。其他涉及由共享偏好处理的少量用户数据。 我不需要来自服务器的高性能/超异步数据流(如 BLoC 逻辑教程的 90% 所示)。 真的有必要拥有一个应用程序状态模式吗?对于我的情况,最好的方法是什么?

【问题讨论】:

【参考方案1】:

您可以使用 Stateful Widgets 的方法,并执行您的流程(以防您不需要高性能的应用程序),但我建议的最佳方法是使用 PROVIDERS,它们很容易实现,您可以以更简单和更清洁的方式处理下载过程和保存,该应用程序将运行得非常好,并且也适用于无状态小部件(您可以只重建复杂小部件树中的必要部分)。

但请自行研究,找出最适合您的应用的应用, 快乐编码:)

【讨论】:

【参考方案2】:

我的建议是尝试在 Provider 和 BLoC 之间混合使用,而不是使用 RxDart,Redux 需要太多样板代码并且更用于管理流。

提供商将允许您以有组织的方式在小部件树之间共享信息,而 BLoC 将帮助您将逻辑与 UI 分开,这是及时发展的最佳实践。

我建议来自这个频道的内容:https://codewithandrea.com/tags/provider/ 他帮助并提供了很好的资源来实现一个简单易懂的架构背景。

【讨论】:

【参考方案3】:

是的,BLoC、RxDart、Redux 已经足够好了。 但是我们应该选择我们需要的东西,在这个项目中,不需要使用任何三个。

对于状态管理,您可以使用provider 包,因为它最适合您的要求,并且易于使用和实施

实现它的一个非常简单的例子是here

【讨论】:

以上是关于没有 BLoC 的 Flutter 状态管理的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - flutter_bloc状态管理

Flutter BLoC:管理主要数据类型的状态

Flutter 状态管理之Bloc上

Flutter 状态管理之Bloc上

Flutter 状态管理之Bloc上

Flutter Bloc 状态管理