【问题标题】:Flutter: What best practice to using blocFlutter:使用 bloc 的最佳实践
【发布时间】:2022-01-04 09:11:00
【问题描述】:
我正在重构一个颤振项目,每个页面/屏幕在一个块中使用许多流组件!
因此,例如,主页上的所有流都与主页块。
这会导致很多问题
- 性能,因为所有这些流将立即加载(所有流都是 SQLite 查询)
- 不容易维护或调试。
所以我正在考虑为每个具有自己状态的页面组件创建一个 bloc/cubit,但这会导致单个屏幕的大量样板!
我不知道使用 bloc 的最佳做法是什么!特别是在此之后的文件夹结构,我们是否将这些块移动到屏幕文件夹,如 lib/screens/home/blocs/some_bloc 或让它像现在一样 lib/blocs/some_bloc
我猜这里没有代码可以实现,因为问题是关于我的用例的最佳实践!
【问题讨论】:
标签:
android
flutter
dart
flutter-dependencies
【解决方案1】:
好的,首先,每个项目都有自己的案例,根据他们的不同,可以使用更好或更差的架构。
我的一个应用程序中的结构与您描述的相同,所以我将告诉您我对此的看法。
首先,为每个页面组件创建一个块,因为它们是不同的,不要担心样板文件,因为您很可能会在应用程序的其他地方而不是主屏幕中使用这些块。
在我的例子中,我将 CategoryBloc、OffersBloc、BrandBloc 和 AdsBloc 都集成到了主屏幕中,但它们中的大多数都在应用程序的其他地方使用,而且你将遵循单一职责原则
其次,关于文件夹结构,这取决于应用场景和案例,以及使用哪个更舒服,有人喜欢lib/feature_a/blocs/,有人更喜欢lib/blocs/,如果你使用第二个会更好多个功能中的同一块。
lib
|
|=> blocs
| |=> bloc_a
| |=> bloc_b
|=> screens
|=> screen_a (using bloc_a)
|=> screen_b (using bloc_a and bloc_b)
但这又是一种观点,可能有更好的解决方案我不知道