首页 > 解决方案 > 在 NgRx 中,在哪里将来自服务器的响应数据(通过副作用获得)转换为组件可以理解的状态?

问题描述

我是 NgRx 的新手,因此很困惑。我有一个简单的组件,它显示了一个对象列表,例如订单。它使用效果从后端获取要显示的订单列表。唯一的问题是我想将此响应从 BE 转换为要在组件中显示的简单对象列表。我很困惑在哪里转换它。我看到 4 个选项:

  1. 在从后端获取列表的服务中对其进行转换-实现起来很简单,不确定它是否是最好的方法。
  2. 将其转化为效果 - 如果在这里,那么为什么不在服务中?
  3. 使用减速器对其进行转换 - 似乎是一个有效的地方。
  4. 使用选择器对其进行转换——我们不需要视图状态,因为每次打开组件时视图状态都会从选择器中派生。甚至可能让它变慢,因为它每次都必须转换状态。

这是我目前的理解。我想知道它是否正确,我也想知道处理这种情况的最佳实践,这在应用程序中似乎应该相当普遍。

标签: angularngrxngrx-storengrx-effects

解决方案


这不是一个ngrx 问题,而是一个客户端-服务器映射问题。

以我的经验,最佳实践是映射尽可能接近 api - 所以在这种情况下,在从 BE 获取它的服务中。

请注意,您还可以为映射创建特定服务,并从 API 服务调用它 - 这将取决于您的 API 服务的详细程度


推荐阅读