我正在使用React + Flux。我们的团队正计划从通量转向redux。 Redux对于我来自flux world来说非常困惑。 光通量控制流程简单来自组件 - >行动 - >存储和存储更新组件。它简单明了。
但在redux中令人困惑。这里没有商店,是的,有些例子没有使用商店。我经历了几个教程,似乎每个人都有自己的实现风格。有些人正在使用容器,有些则没有。 (我不知道这个容器概念,也无法理解mapStatePtoProps所做的mapStateToProps)。
答案 0 :(得分:58)
- 有人可以清楚地解释如何在redux中控制流程吗? Redux(总是)有一家商店。
醇>
每当要替换商店中的状态时,都会分派操作。
该动作由一个或多个减速器捕获。
reducer / s创建一个新状态,它结合了旧状态和分派的动作。
商店订阅者会收到有关新状态的通知。
- redux中组件/容器/操作/操作创建者/存储的角色是什么?
醇>
存储 - 保持状态,当新操作到达时运行调度 - >中间件 - > reducer管道,并在状态被新的状态替换时通知订户。
组件 - 直接无法识别状态的哑视图部件。也称为表达组件。
容器 - 使用react-redux了解状态的视图片段。也称为智能组件和更高阶组件
请注意,容器/智能组件与哑组件只是构建应用程序的好方法。
动作 - 与flux相同 - 具有类型和有效负载的命令模式。
行动创作者 - 创造行动的干嘛方式(非必要)
- redux / react-redux / redux-thunk / any others之间的区别?
醇>
redux - 像单个商店一样的流动,可以用在你喜欢的任何环境中,包括香草js,反应,角1/2等......
react-redux - redux和react之间的绑定,创建监听商店状态变化的容器(智能组件),为演示(哑)组件准备道具并重新渲染。
redux-thunk - 允许您编写返回函数而不是动作的动作创建者的中间件。 thunk可用于延迟动作的发送,或仅在满足某个条件时发送。主要用于对api的异步调用,即在成功/失败时调度另一个操作。
- 如果您可以发布任何简单的链接,那将非常有帮助 精确的redux教程。
醇>
答案 1 :(得分:12)
回答标题问题:
redux,react-redux,redux-thunk之间有什么区别?
答案 2 :(得分:2)
答案 3 :(得分:0)
下面的图像演示了redux中的数据流: how the data flows through Redux? Redux的优点如下:
结果的可预测性 –由于始终有一个真实来源,即商店,因此,对于如何将当前状态与操作以及应用程序的其他部分进行同步,没有任何困惑。 可维护性 –该代码变得易于维护,具有可预测的结果和严格的结构。 服务器端渲染 –您只需要将在服务器上创建的存储传递给客户端。这对于初始渲染非常有用,并在优化应用程序性能时提供了更好的用户体验。 开发人员工具 –从操作到状态更改,开发人员都可以实时跟踪应用程序中正在进行的所有操作。 社区和生态系统 – Redux背后有一个庞大的社区,这使其使用更加引人入胜。大量的才华横溢的社区为图书馆的发展做出了贡献,并开发了各种应用程序。 易于测试 – Redux的代码主要是小的,纯净的,孤立的功能。这使代码可测试且独立。 [组织] [2] – Redux精确地说明了代码的组织方式,这使得团队工作时代码更加一致和容易。