flutter - Flutter,BLoC 需要 rx dart 吗?
问题描述
在我看到的 bloclibrary 官方网站文档中,我从未见过他们使用 rx dart。
但是,有时在社区中,他们说一起使用 rx dart 要好得多。但我不明白。我使用 firestore 作为后端,我只是觉得我根本不需要 rxdart。即使我努力搜索,我也无法看到使用 rx dart + BLoC 的好的示例项目。
如果将 rx dart 与 BLoC 一起使用有什么好处?我可以看一个例子吗?
解决方案
您正在将 BLoC 模式与 Bloc 库混合在一起。
BLoC 模式是一种响应式状态管理解决方案,由 Google 创建。它的目标是充当应用程序中数据之间的中间人,例如,处理 API 和 UI 之间的状态和业务逻辑。
它意味着独立于平台,这意味着 Bloc 中的相同 dart 代码将在 Flutter 和 Angular 等框架中工作。
通常,使用 RxDart,您可以像这样创建一个 BLoC:
class AppDataBloc {
// The publish subject is responsible for get/add data and
// pass it to the UI as a stream.
final _appDataSubject = PublishSubject<AppData>();
// This is the stream the UI will use.
Observable<AppData> get appData => _appDataSubject.stream;
}
另一方面,Bloc 库是 BLoC 模式的实现。
它不仅提供了一种简单、统一和直观的方式来实现 BLoC 模式,而且还使您的应用程序非常易于测试和维护。
所以要回答你的问题,你不需要 RxDart,除非你想自己实现 BLoC 模式。如果您使用 Bloc 库,那么您已经在使用 BloC 模式的免费 RxDart 实现。
推荐阅读
- javascript - React:尝试使用 Masonry 布局实现顺序淡入效果,但它是无序的
- android - 如何在 activity_main_drawer.xml 中编辑菜单项的样式
- python - 在熊猫的csv文件中选择一些列
- sql - 需要帮助来编写查询
- c# - 将标量值 SQL 函数映射到方法
- python-3.x - 如何用 RSA 算法处理大整数
- c# - 如何使用 identityserver 4 注销客户端?
- javascript - Angular - LocalStorage 启动时为空,刷新时填充(F5)
- sql - 如何根据 sysdate 获取过去一年的不同日期范围
- ruby - 如何在单个 CLI 命令中本地执行托管在 github 上的 ruby 脚本