首页 文章

与Axios apis一起使用时,Redux-Thunk和Redux-Promise之间有什么区别?

提问于
浏览
13

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

在我的应用程序中,动作创建者主要对我的后端apis进行异步axios [ajax]调用 . 将Redux-Promise注入中间件可以解决异步数据流的问题 .

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

一般来说,团队更倾向于使用Redux-Thunk,我觉得这个问题的语法更复杂 . 考虑到我的大多数动作创建者只进行了axios调用(promises),我需要在评估这两个框架时提出建议 . 我看过很多关于Redux-thunk here的讨论 . 我明白thunk是如何有用的 . . 但是当我只使用Promise时,我需要更多的澄清来评估Redux-Promise和Redux-Thunk . 哪种中间件在这种情况下更好?为什么?使用Redux-Thunk而不是Redux-Promise可以获得哪些优势?或者没有?

1 回答

  • 21

    Redux Promise可以方便地调度三个操作(请求,成功,失败),而无需手动编写代码 .

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

    您可以一起使用它们,也可以特别使用任何一种 . 我建议从Redux Thunk开始,因为它提供更多控制并且更通用 . 在使用它之后,您可以考虑添加Redux Promise来删除一些与调度三种操作相关的样板代码 . 如果您发现它不会对您造成太大影响,请将其删除 . 另一方面,如果您注意到所有thunk动作创建者只发送一个承诺,您可以删除Redux Thunk .

    如果这仍然令人困惑,我建议您使用Redux Thunk,直到您对中间件的工作方式更加满意为止 .

相关问题