Architecture Flutter App the Bloc_Redux Way
内容提要
本文讨论了 Flutter 中的状态管理方案:flutter_redux 和 flutter_bloc。flutter_redux 是 Redux 在 Flutter 的实现,但效率较低;而 flutter_bloc 复杂度高且处理状态时存在不足。作者提出了 Bloc_Redux 解决方案,通过将状态分为输入和输出,利用 StreamBuilder 提高效率,使组件更灵活地响应状态变化。
关键要点
-
flutter_redux 是 Redux 在 Flutter 的官方实现,由 StoreProvider 和 StoreConnector 组成,但效率较低。
-
flutter_bloc 是对 Flutter 提出的 bloc 概念的实现,复杂度高且在处理状态时存在不足。
-
两者都无法高效地处理状态变化,导致组件不必要的重建。
-
作者提出了 Bloc_Redux 解决方案,通过将状态分为输入和输出,利用 StreamBuilder 提高效率。
-
Bloc_Redux 允许 Widget 自行选择监听哪些流,从而更灵活地响应状态变化。
-
Store 负责接收信息并做出决策,而信息的处理者是各个 Bloc,简化了状态管理的复杂性。
延伸问答
什么是 flutter_redux?
flutter_redux 是 Redux 在 Flutter 的官方实现,由 StoreProvider 和 StoreConnector 组成,但效率较低。
flutter_bloc 的复杂性体现在什么方面?
flutter_bloc 的复杂性体现在增加了新的概念,如 BlocSupervisor 和 BlocDelegate,且在处理状态时没有进行有效的状态比较。
Bloc_Redux 解决方案是如何提高效率的?
Bloc_Redux 通过将状态分为输入和输出,利用 StreamBuilder 让组件更灵活地响应状态变化,从而提高效率。
为什么 flutter_redux 和 flutter_bloc 无法高效处理状态变化?
因为这两者在状态更新时会导致所有连接的组件重新构建,无法有效区分状态变化的属性。
Bloc_Redux 如何简化状态管理的复杂性?
Bloc_Redux 通过将状态处理者分为多个 Bloc,简化了状态管理的复杂性,使得每个 Bloc 只关注特定的状态变化。
在 Bloc_Redux 中,Store 的角色是什么?
在 Bloc_Redux 中,Store 负责接收信息并做出决策,同时管理多个 Bloc 的状态更新。