使用redux时,为什么我要避免直接在组件中进行API调用?

时间:2017-02-22 16:37:36

标签: reactjs redux

所以我可能会问错误的问题,所以请留下评论,我会调整。 another developer告诉我,在使用redux时,我应该在actions内进行所有API调用并为其创建reducers。但我觉得有时直接在组件中进行调用会为我节省大量的代码。是否有针对此类事情的最佳做法?

2 个答案:

答案 0 :(得分:4)

如果您从API获取的数据仅由单个组件使用,那么您可以将其作为组件的一部分(或者更好的是容器组件)。我相信在行动中进行API调用背后的理由是确保维持单一事实来源(使用' react / redux方式的主要原因,对于我个人而言)。如果要从API中引入要由多个组件使用的数据,请使用redux以确保redux维护相同的状态并将其传递给使用它的所有组件。

答案 1 :(得分:2)

以前由Redux的创建者Dan Abramov回答:Why do we need middleware for async flow in Redux?

摘要:

  

在大型应用程序中只是不方便,因为您将有不同的组件执行相同的操作,您可能想要去除某些操作,或保持一些本地状态,如自动递增ID靠近动作创建者等。所以它是从维护的角度来看,更容易将动作创建者提取到单独的函数中。