为什么通过Facebook Flux使用Redux?[关闭]

我已经阅读了这个答案减少了样板,看了几个GitHub示例,甚至尝试了一点redux(待办事项应用程序)。

据我了解,与传统的MVC架构相比官方的redux doc动机提供了很多优点。但是它没有提供以下问题的答案:

为什么要通过Facebook Flux使用Redux?

这仅仅是编程风格的一个问题:功能性还是非功能性?还是问题出在redux方法之后的abilities / dev-tools中?也许缩放?还是测试?

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

为了回答这个问题,您可以比较实现Redux在通量和Redux上的动机点的复杂性。

以下是来自官方redux doc动机的动机点

  1. Handling optimistic updates (as I understand, it hardly depends on 5th point. Is it hard to implement it in facebook flux?)
  2. Rendering on the server (facebook flux also can do this. Any benefits comparing to redux?)
  3. Fetching data before performing route transitions (Why it can't be achieved in facebook flux? What's the benefits?)
  4. Hot reload (It's possible with React Hot Reload. Why do we need redux?)
  5. Undo/Redo functionality
  6. Any other points? Like persisting state...
樱泡芙2020/03/09 22:31:23

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

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

JimDavaid卡卡西2020/03/09 22:31:23

来自2018年中期从ExtJS(几年)迁移的新React / redux采用者:

向后滑下redux学习曲线后,我遇到了相同的问题,并认为纯通量将像OP一样简单。

我很快看到了以上答案中提到的redux相对于flux的好处,并且正在将其用于我的第一个应用程序。

在再次掌握样板时,我尝试了一些其他状态管理库,发现的最好是rematch

vanilla redux更加直观,它减少了90%的样板,减少了我在redux上花费的时间的75%(我认为是图书馆应该做的事情),我能够得到一些企业应用程序马上去。

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

因此,对于到达此SO职位搜索“更简单的redux”的任何人,我建议尝试使用它作为redux的一种简单替代方法,它具有所有优点和1/4的样板。

十三西门2020/03/09 22:31:23

我是早期采用者,并使用Facebook Flux库实现了中型单页应用程序。

我在谈话中有点晚了,我只想指出,尽管我最大的希望是,Facebook似乎将Flux的实现视为概念的证明,并且从未受到应有的重视。

我鼓励您使用它,因为它展示了Flux架构的更多内部工作,这是很有教益的,但是同时,它没有像Redux这样的库提供许多好处(这些没有对于小型项目来说很重要,但对于大型项目则变得非常有价值)。

我们已经决定继续前进,我们将搬到Redux,我建议您这样做;)

西里猿LEY2020/03/09 22:31:23

您最好从阅读Dan Abramov的这篇文章开始,在他撰写redux时他讨论Flux的各种实现及其折衷: Flux Frameworks的演变。

其次,您链接到的动机页面并没有真正讨论Redux的动机,而是讨论Flux(和React)背后的动机。尽管仍然没有解决与标准Flux架构的实现差异,但三项原则”是针对Redux的。

基本上,Flux具有多个存储,这些存储可响应于与组件的UI / API交互来计算状态更改,并将这些更改作为组件可以订阅的事件进行广播。在Redux中,每个组件都只能订阅一个存储。IMO至少感觉到Redux通过统一(或减少,如Redux所说的)流回组件的数据流来进一步简化和统一数据流-而Flux则集中于统一数据流的另一端-模型。

村村凯宝儿2020/03/09 22:31:23

这是Redux over Flux的简单说明。Redux没有调度程序,它依赖于称为reducers的纯函数。它不需要调度程序。每个动作由一个或多个reduce处理,以更新单个存储。由于数据是不可变的,reduces返回一个新的更新状态来更新存储在此处输入图片说明

有关更多信息,Flux vs Redux

小哥GO2020/03/09 22:31:23

我在Flux工作了很长时间,现在在Redux中工作了很长时间。正如Dan所指出的,两种架构都没有太大不同。事实是Redux使事情变得更简单,更清洁。它教会了您有关Flux的一些知识。例如,Flux是单向数据流的完美示例。关注点分离在我们拥有数据的地方,其操作和视图层是分离的。在Redux中,我们有相同的东西,但我们还学习了不变性和纯函数。