使用ngrx/store更新存储的正确方法

Nir*_*Nir 4 state redux ngrx angular

我正在学习ngrx/store,我有一个组件调用服务从服务器获取一些数据,因为我重构它使用ngrx/store,我不知道在哪里更新商店.

据我所知,我有两个选择:

  1. 从组件调用服务,获取数据,并使用dispatch更新存储.
  2. 从组件调用服务,服务将使用更新存储状态dispatch.组件可以订阅状态的该部分(使用select),当服务获取数据并更新状态时,组件将通过商店订阅获得更新.

什么是正确的("最佳实践")方式?(也许还有另一个为什么我应该这样做?)

Shl*_*evi 16

你应该使用@ngrx/effects来做.

  1. 组件调度操作:LOGIN
  2. 效果捕获动作.
  3. 效果触发服务获取数据.
  4. 效果会返回包含数据的新操作.
  5. Reducer使用数据作为有效负载获取新操作并构建状态.

这是最佳做法.

有关使用效果的示例,请参阅我的回购.

Memroy游戏(带效果)

  • 答案是正确的。但是对于 ngrx 的新手来说,没有任何示例代码会使这变得难以理解。 (3认同)