Flutter:我应该在每页(UI /视图)上使用BloC类吗?

时间:2019-03-26 15:50:11

标签: dart flutter bloc

我正在作为Android开发人员研究和开发Flutter应用。

我对抖动,飞镖和BloC架构模式不熟悉。 无论如何,我正在将BloC模式应用于我的flutter应用程序。

因为我学习了Clean Architecture,所以我也想应用Clean Architecture。 第一次,我根据功能分离了BloC类。

我的玩具应用是Todo应用。

所以我有一个非常简单的功能,我定义了BloC,例如:

  • 创建待办事项> CreateTodoBloc
  • 更新待办事项> UpdateTodoBloc
  • 获取待办事项> GetTodosBloc
  • 删除待办事项> DeleteTodoBloc

在我的主界面/视图中,显示待办事项列表,当用户完成待办事项时可以对其进行更新。

在这种情况下,主界面/视图应具有两个BloC:GetTodosBloc和UpdateTodoBloc

这可以显示待办事项列表,当用户单击待办事项按钮时,待办事项将更新并保存到本地数据库中。

但是问题是待办事项列表没有更改! 我的家庭用户界面/视图根据待办事项的完整状态显示待办事项列表。

看来我的概念是错误的... 为了解决这个问题,我认为我应该在每个UI /视图中使用BloC。

然后,主界面/视图将只有一个块对象:“ HomeBloc”。

“ HomeBloc”可能会显示用户界面并更新待办事项。

所以...

我想听听其他开发人员的意见,并且知道还有另一种最佳实践。

1 个答案:

答案 0 :(得分:2)

希望那段时间过后您仍在从事Flutter项目。

我真的很喜欢您在Flutter中思考和实现干净架构的方式。

我最近一直在使用Bob叔叔的干净架构原则,这令人惊讶,这是他拥有Single Responsibility Principle的五项原则之一,老实说,我认为BLoC是管理状态的一种方式,仅与我所想到的相同如果您在Google的AAC(Android体系结构组件)中了解ViewModel,则实际上它们不应该在其中执行任何逻辑操作。

它应该仅从UI获取命令并将其传递给用例,这些用例应使逻辑然后将结果再次返回到视图。

我刚刚制作了一个测试应用程序,该应用程序实现了Clean Architecture原理,并且希望获得您的反馈,您可以从here访问该存储库。