我已经阅读了这个答案,减少了样板文件,看了一些GitHub的例子,甚至尝试了一些redux (todo应用程序)。

据我所知,与传统的MVC架构相比,官方redux文档的动机提供了优点。但它并没有提供以下问题的答案:

为什么你应该使用Redux而不是Facebook Flux?

函数式与非函数式仅仅是编程风格的问题吗?或者问题是redux方法所带来的能力/开发工具?也许扩展?还是测试?

如果我说redux对于那些来自函数式语言的人来说是一种变化,我说的对吗?

要回答这个问题,您可以比较redux在flux和redux上的动机点的实现复杂性。

以下是官方redux文件中的动机点:

处理乐观的更新(据我所知,这几乎不依赖于第五点。在facebook flux中执行它是否困难?) 在服务器上渲染(facebook flux也可以做到这一点。与redux相比有什么好处吗?) 在执行路由转换之前获取数据(为什么它不能在facebookflux中实现?有什么好处?) 热重载(这是可能的React热重载。为什么我们需要redux?) 撤销/重做功能 还有什么问题吗?比如持久化状态…


当前回答

2018年年中,一个新的react/redux采用者从(几年的)ExtJS迁移过来:

在redux学习曲线向下滑动之后,我有同样的问题,并认为纯通量会像OP一样更简单。

我很快就看到了redux对flux的好处,就像上面的答案中提到的那样,并将其应用到我的第一个应用程序中。

在再次掌握锅炉板的同时,我尝试了其他一些国家管理libs,我发现最好的是rematch。

它比普通的redux更直观,它减少了90%的样板文件,减少了我花在redux上的75%的时间(我认为一个库应该这样做),我能够让几个企业应用立即运行起来。

它还使用相同的redux工具运行。这是一篇很好的文章,涵盖了一些好处。

因此,对于任何其他到达这篇So帖子搜索“更简单的redux”的人,我建议尝试它作为一个简单的redux的替代品,它具有所有的好处和1/4的模板。

其他回答

这是Redux / Flux的简单解释。 Redux没有分派器。它依赖于称为约简的纯函数。它不需要调度程序。每个操作由一个或多个简化器处理,以更新单个存储。由于数据是不可变的,reducers返回一个新的更新状态来更新存储

更多信息Flux vs Redux

我是一个早期的采用者,并使用Facebook Flux库实现了一个中等大小的单页面应用程序。

虽然我有点晚了,但我要指出的是,尽管我寄予了最大的希望,但Facebook似乎认为他们的Flux实现是一个概念的证明,它从未得到应有的关注。

我鼓励您使用它,因为它揭示了Flux架构的更多内部工作原理,这非常有教育意义,但与此同时,它没有提供像Redux这样的库所提供的许多好处(这些好处对于小型项目并不那么重要,但对于大型项目非常有价值)。

我们已经决定继续前进,我们将移动到Redux,我建议你也这样做;)

我用Flux工作了很长时间,现在用Redux工作了很长时间。正如Dan指出的那样,这两种架构并没有太大的不同。Redux让事情变得更简单、更清晰。它在Flux的基础上教给你一些东西。比如Flux就是一个单向数据流的完美例子。关注点分离,数据、操作和视图层分离。在Redux中,我们有同样的东西,但我们也学习了不变性和纯函数。

根据这篇文章: https://medium.freecodecamp.org/a-realworld-comparison-of-front-end-frameworks-with-benchmarks-2019-update-4be0d3c78075

你最好使用MobX来管理应用中的数据以获得更好的性能,而不是Redux。

2018年年中,一个新的react/redux采用者从(几年的)ExtJS迁移过来:

在redux学习曲线向下滑动之后,我有同样的问题,并认为纯通量会像OP一样更简单。

我很快就看到了redux对flux的好处,就像上面的答案中提到的那样,并将其应用到我的第一个应用程序中。

在再次掌握锅炉板的同时,我尝试了其他一些国家管理libs,我发现最好的是rematch。

它比普通的redux更直观,它减少了90%的样板文件,减少了我花在redux上的75%的时间(我认为一个库应该这样做),我能够让几个企业应用立即运行起来。

它还使用相同的redux工具运行。这是一篇很好的文章,涵盖了一些好处。

因此,对于任何其他到达这篇So帖子搜索“更简单的redux”的人,我建议尝试它作为一个简单的redux的替代品,它具有所有的好处和1/4的模板。