15

几个月以来我一直在使用 React 和 Redux。生态系统中最令人困惑的部分之一是异步数据流。有许多很好的解决方案可用,为您的问题选择正确的解决方案是困难的部分。

在我的应用程序中,动作创建者大多对我的后端 api进行异步axios [ajax] 调用。注入 Redux-Promise 作为中间件解决了异步数据流的问题。

考虑到可扩展的应用程序,我可能需要在我的操作创建器中链接多个 axios 调用。我认为我仍然可以使用 Redux-Promise 作为中间件,这将处理我的应用程序中的异步数据流。

总的来说,团队更倾向于使用 Redux-Thunk,我觉得这个问题的语法更复杂。考虑到我的大多数动作创建者只进行 axios 调用(承诺),我需要在评估这两个框架时提出建议。我在这里看到了大量关于 Redux-thunk 的讨论。我明白 thunk 是如何有用的。. 但我需要更多说明,仅在用于 Promises 时将 Redux-Promise 和 Redux-Thunk 一起评估。在这种情况下哪个中间件更好,为什么?与 Redux-Promise 相比,使用 Redux-Thunk 有什么优势?还是没有?

4

1 回答 1

24

Redux Promise 便于分派三个操作(请求、成功、失败),而无需手动编写该代码。

当您将一个动作创建者表示为等待另一个动作创建者时,Redux Thunk 对异步数据流很方便。它还允许您读取有条件调度和早期救助的当前状态。

您可以一起使用它们,也可以特别使用其中任何一种。我会推荐从 Redux Thunk 开始,因为它提供了更多的控制并且更加通用。在你让它工作之后,你可以考虑添加Redux Promise 来移除一些与 dispatch 三种动作相关的样板代码。如果您发现它对您没有多大帮助,请将其删除。另一方面,如果你注意到所有 thunk 动作创建者只发送一个 Promise,你可以删除 Redux Thunk。

如果这仍然令人困惑,我建议您只使用 Redux Thunk,直到您对中间件的工作方式更加熟悉。

于 2016-05-01T15:42:14.877 回答