对 api 请求使用 ngrx 效果但不将结果存储在商店中

use ngrx effect for api request but dont store result in store

我正在开发一个 Angular 项目,该项目正在使用 ngrx/store

我的一个组件需要后端的数据。所以流程通常是这样的:

  1. 调度Action
  2. 调用Effect --> 调用后端
  3. 使用来自后端的数据更新store
  4. 组件使用selector获取数据

现在我们的后端 returns 有大量数据(例如 100.000)条目。由于某些原因,我无法进行分页。

我目前正在考虑不要将 100.000 个条目保留在 store 中,因为数据未在应用程序的其他任何地方使用(违反了 SHARI 原则)。你认为这是个好主意吗:

  1. 调度Action
  2. 调用Effect --> 调用后端
  3. 组件侦听 ApiCallSuccess Action 并使用来自负载的数据。

我这边的好处是:我们总是使用 Effects 来调用后端(一致性)。

你有什么建议?我的替代方案是 component 只调用 API 并直接使用数据。

两种选择各有利弊 - 我认为这是您和您团队的选择。

你也可以看看@ngrx/component-store这是一个中间地带,非常适合与组件的生活方式绑定的状态。