应用 API 响应转换的最佳位置 [关闭]

2024-04-05

在异步操作创建器中,我从服务器获取数据。对于我的用例来说,数据的格式不太好,我需要对其进行转换以在 UI 中使用它。

问题:我应该

  1. 在数据到达后立即对其进行转换,然后再使用转换后的数据发送成功操作?

    fetch("some/url")
    .then(res => dispatch(successActionCreator(transform(res)))
    
  2. 使用原始数据发送成功操作并将其存储为,并在内部进行转换mapStateToProps ?

  3. 使用原始数据发送成功操作并将其转换到减速器中?

In 1.,数据将在我需要时进行转换,在我看来,它将 API 数据格式和我的 Redux 存储解耦。但转换逻辑是在数据获取操作中。

In 2.,异步操作创建者保持简单,根本没有逻辑,并且映射发生在 UI 层。但这意味着我需要用重新选择之类的东西来优化它,因为mapStateToProps每次渲染都会调用。

In 3.,异步操作创建者保持简单,根本没有逻辑,但操作与 API 数据格式耦合。

我要去1.(无论如何都要对转换进行单元测试),但我并不完全高兴。有什么建议吗?谢谢 !

- 编辑:由于这个问题受到固执己见的答案的影响,所以我在这里回答我自己。我会和1.,出于评论和答案中所述的所有原因。


选项 1 是正确答案。

如果您传递原始服务器响应,则您正在将客户端耦合到服务器端实现。隔离这些类型的转换对于应用程序未来的可维护性非常重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用 API 响应转换的最佳位置 [关闭] 的相关文章

随机推荐