gpt4 book ai didi

angular - Redux 只维护共享数据

转载 作者:太空狗 更新时间:2023-10-29 17:28:01 25 4
gpt4 key购买 nike

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

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

  • 场景 1:从服务获取数据的容器组件可以分派(dispatch)这些操作,但我认为它不属于这里。
  • 场景 2:进行 HTTP 调用的服务可以分派(dispatch)这些操作,这意味着该服务必须订阅 HTTP 可观察对象并为组件返回其自己的可观察对象。
  • 场景 3:可以在 Redux 中间件中完成,但随后我们必须分派(dispatch)一个操作来获取值列表,这意味着值列表必须存储在我们不想要的商店中。
  • 场景 4:如上所述 here ,我们可以创建一个抽象层,但那时感觉就不需要中间件了。

最佳答案

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

您可以在调用时调用 NETWORK_REQUEST_SENT 并在 finally 中调用 NETWORK_REQUEST_COMPLETED在请求完成时调用一个 Action 。那么就不需要另一个可观察对象了。

关于angular - Redux 只维护共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47215538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com