使用redux进行组织API调用的更好的做法是什么?

时间:2019-11-27 08:09:16

标签: javascript reactjs redux structure

使用redux进行组织API调用的更好的实践/便捷的实现是什么?我

我有

  • 一些来自API的数据,我存储在redux中。我也为API存储令牌 在redux中

  • 来自API的
  • 数据,我不需要将其存储在redux中

  • 需要令牌的API调用

  • 不需要令牌的API调用

  • 和不需要令牌的API调用,并且我不需要在redux中存储响应

所以主要问题是。即使我不需要将响应存储在redux中,我也应该对API调用使用操作,但是对于其中的一些我需要来自redux的令牌?

或者仅对那些我将存储在redux中的响应使用API​​的操作。 对于其他东西,例如创建自定义钩子,从那里我将从redux获得令牌并从中进行调用

我也尝试了这两种变体,但是我无法确定哪个更好。并读到一些关于此的评论,但它们是50/50。

2 个答案:

答案 0 :(得分:2)

对我来说,这取决于您要在应用程序中共享的信息。这是我的想法:

  1. 如果您的响应是在应用程序之间共享的,则将它们置于redux状态是合理的,否则您无需通过操作进行调用。如果您将API响应设置为redux状态,则最好先对其进行规范化。 (https://blog.brainsandbeards.com/advanced-redux-patterns-normalisation-6b9a5aa46e1f
  2. 可以在redux中使用令牌,但是很快您可能会考虑让管理员来管理令牌,而不是放入Redux商店,因为您将需要对令牌进行其他操作,例如更新新令牌和验证。使用这种方法,您可以在任何地方访问令牌。
  3. 您可以创建自己的Request类来为需要令牌或不需要令牌的API设置默认身份验证

答案 1 :(得分:1)

就个人而言,我会尽可能减少对Redux的使用。并不是说它超级方便,而是增加了不必要的复杂性。

在这里阅读:https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367

我会选择第二种方法,您仍然可以将redux存储中的令牌应用于API。