【问题标题】:Flutter: What best practice to using blocFlutter:使用 bloc 的最佳实践
【发布时间】:2022-01-04 09:11:00
【问题描述】:

我正在重构一个颤振项目,每个页面/屏幕在一个块中使用许多流组件!

因此,例如,主页上的所有流都与主页块。

这会导致很多问题

  1. 性能,因为所有这些流将立即加载(所有流都是 SQLite 查询)
  2. 不容易维护或调试。

所以我正在考虑为每个具有自己状态的页面组件创建一个 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)
    

    但这又是一种观点,可能有更好的解决方案我不知道

    【讨论】:

      猜你喜欢
      • 2021-11-26
      • 2021-06-24
      • 2021-02-04
      • 2021-08-17
      • 1970-01-01
      • 2020-01-09
      • 2020-05-11
      • 1970-01-01
      • 2020-06-20
      相关资源
      最近更新 更多