Redux仅用于维护共享数据

wol*_*ine 6 redux redux-middleware angular ngrx-store

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

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

  • 场景1:从服务获取数据的容器组件可以调度这些操作,但我不认为它属于此处.
  • 场景2:进行HTTP调用的服务可以调度这些操作,这意味着服务必须订阅HTTP observable并返回其自己的组件可观察对象.
  • 场景3:可以在Redux中间件中执行,但是我们必须分派一个用于获取值列表的操作,这意味着值列表必须存储在商店中,这是我们不想要的.
  • 方案4:如前所述在这里,我们可以创建一个抽象层,但后来感觉没有必要中间件即可.

Gün*_*uer 2

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

NETWORK_REQUEST_SENT您可以在调用时调用它,并在请求完成时调用finallyNETWORK_REQUEST_COMPLETED来调用操作。那么就不需要另一个可观察的了。