【问题标题】:One BLoC per feature or per use case?每个功能或每个用例一个 BLoC?
【发布时间】:2022-01-15 18:05:08
【问题描述】:

我正在尝试使用 BLoC 架构创建应用程序。 我分离出功能(如设置、登录、注册等),现在我需要设计我的 BLoC。

正确的做法是什么?我应该为每个功能创建一个 BLoC 还是每个用例创建一个 BLoC? 例如设置。用户可以更改密码、头像和管理通知首选项。 我应该创建SettingsBloc 与可能的交互对应的事件(和状态)吗?或者更好的方法是创建ChangePasswordBlocChangeAvatarBloc 并使用MultiBlocBuilder

我尝试实现第一种方法,但我不知道如何仅重建 UI 的一部分,如何过滤正确的状态。

【问题讨论】:

    标签: flutter bloc


    【解决方案1】:

    我会说每个功能。 Bloc 有一些非常好的文档(文档和示例应用程序)。

    我的建议是看看here

    链接指向演示Todo 应用程序,您可以在其中了解应用程序的结构和原因。

    【讨论】:

      【解决方案2】:

      我认为每个功能都有 Bloc 更好,但这不是一个固定的规则,它取决于情况。我的思维方式就像有一个 AuthBLoc 或 UserBLoc 来实现像 signIn 或 signUp 这样的用例,或者对于设置我通常有一个 ThemeBloc 有主题操作。

      至于您的第二条语句,您通常对不同的事件和用例有不同的状态,例如您将拥有 UserSignInState 和 UserSignUpState 并在您的 BlocBuilder 中检查即将到来的状态是否为 UserSignUpState 以及是否返回您的 UI。

      【讨论】:

        猜你喜欢
        • 2021-03-22
        • 2022-06-29
        • 2020-10-19
        • 2019-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2011-09-20
        • 2014-07-07
        相关资源
        最近更新 更多