【问题标题】:Should I call services directly when i use NGRX?使用 NGRX 时是否应该直接调用服务?
【发布时间】:2019-11-15 10:56:50
【问题描述】:

NGRX 对直接在组件中使用服务有意见吗?

示例:

登录组件:如何处理登录的版本:

  • 当用户单击登录按钮时调度登录操作并让 AuthEffect 处理与服务器的通信
  • 当服务器返回响应时,直接在 Login 组件中调用 AuthService 的 Login Method,并在被调用的回调中调度 Login Action。

这里有什么我忽略的显着优点或缺点吗?还是由我决定怎么做?

【问题讨论】:

    标签: angular typescript ecmascript-6 redux ngrx


    【解决方案1】:

    我建议您使用 Facades 来处理与商店的交互以更简单并消除维护和扩展的困难,请查看this

    【讨论】:

      【解决方案2】:

      您不应该在您的组件中调用服务,因为您的组件将依赖于服务,当您的应用程序增长很大时,您将无法维护您的代码

      使用 ngrx 在您的组件中调度一个动作,以便 effect 处理服务调用将是最佳实践,因为您不依赖于您只是调度一个动作的服务,而 effect 将为您处理其余的事情

      【讨论】:

      • 但是您将如何处理这种情况:通过单击一个按钮,我创建了一个新的 ToDo 项并将其发送到服务器。当服务器以成功响应响应时,我想显示成功警报。组件从哪里知道何时显示警报?
      • 你应该做的有效
      猜你喜欢
      • 2015-09-26
      • 2011-05-09
      • 1970-01-01
      • 2021-10-09
      • 2019-05-03
      • 2015-03-06
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      相关资源
      最近更新 更多