Redux仅用于维护共享数据

时间:2017-11-10 04:08:33

标签: angular redux ngrx-store redux-middleware

在我们的Angular应用程序中,我们计划使用Redux,但我们决定使用它来仅管理至少两个组件共享的数据。只使用一个组件的数据将直接获取,而不使用Redux。对于例如假设组件必须显示值列表,并且这些值不与任何其他组件共享,那么我们将使用服务获取此列表。但是在获取此数据时,它可能会影响存储中的某些其他状态,就像它可能会调度一些操作,如NETWORK_REQUEST_SENT,NETWORK_REQUEST_COMPLETED,以便微调器/覆盖组件可以更改其显示。

现在问题是代码的哪一部分应该负责调度这些操作。

  • 场景1:从服务中提取数据的容器组件可以发送这些操作,但我不认为它属于此处。
  • 场景2:进行HTTP调用的服务可以调度这些操作,这意味着服务必须订阅HTTP observable并返回其自己的组件可观察值。
  • 场景3:可以在Redux中间件中执行,但是我们必须发送一个用于获取值列表的操作,这意味着值列表必须存储在商店中,我们不会想。
  • 场景4:正如前面提到的here,我们可以创建一个抽象层,但之后感觉不需要中间件。

1 个答案:

答案 0 :(得分:2)

如果您使用HttpClientModule,则可以注册拦截器,如https://medium.com/@ryanchenkie_40935/angular-authentication-using-the-http-client-and-http-interceptors-2f9d1540eb8

中所述

您可以在调用NETWORK_REQUEST_SENT时调用NETWORK_REQUEST_COMPLETED,在finally调用PPP@11/15以在请求完成时调用操作。 那么就没有必要再有一个可观察的了。