为什么我们需要使用React的Flux?

Nar*_*sty 10 flux reactjs reactjs-flux refluxjs

我不明白为什么我们需要Flux和React作为React本身让我们维护应用程序的状态.每个组件都具有初始状态,并且可以通过用户操作或任何其他异步JavaScript更改状态.

为什么React只能被视为一个视图库,它可以让我们定义应用程序的状态,并在状态发生变化时更新视图.这不是一个视图所做的......它完整的MVC做得对吗?

例如:这里是仅使用React 的Todo应用程序构建,这里是使用Flux和React的Todo应用程序构建.

如果我们只用React构建Todo应用程序那么为什么我们需要Flux?

Krz*_*pka 7

从理论上讲,你不需要助焊剂.在小型应用中,您肯定不需要助焊剂.但是如果您的应用程序包含数百个组件呢?你的一个组件就是形式.用户填充此表单并将其内容发送到服务器.并通过新数据从服务器获得响应.并假设此响应数据和表单中的数据对于其他组件是必需的.

  1. 没有通量:您可以将数据移动到根组件,然后将其分发到所有组件.但是,如果您还需要从许多其他组件分发数据?这使您的应用程序非常复杂.

  2. with flux:您将数据移动到商店,所有对此数据感兴趣的组件都可以从那里获取.您可以更好地控制应用程序和源数据.

我更喜欢redux(只有一个商店和一个真相来源)

编辑:

为什么React被称为视图库,即使它可以处理应用程序状态?

MVC是一种软件架构模式.它将给定的软件应用程序划分为三个互连的部分(模型,视图,控制器).如果我们考虑反应和MVC它适合作为View.但这没什么不对.这并不意味着您只能将它用于视图.它允许您创建正常的应用程序.

但另一方面,您可以将其用作其他框架的视图(例如,您可以将其与角度一起使用).

换句话说,它是非常灵活的库,可用于许多用途.

  • 在我看来,处理反应组分中的应用程序状态是一种有用的副作用.如果您正在编写视图,则需要保留一些状态信息,例如元素的可见性,单选按钮的状态和复选框等.因此,良好的视图库应该提供一些方法来执行此操作.但是一旦该功能可用,没有人会阻止您以相同的方式存储整个应用程序状态.这可能很尴尬,但肯定是可能的. (3认同)

nbe*_*ezs 6

您不需要Flux,就像不需要MVC 一样。它们都是架构,您当然可以在不使用它们的情况下构建某些东西。

您会在 2016 年构建非 MVC 应用程序吗?可能不是,这并不意味着人们过去没有这样做。

流量棒棒哒!但由于科技行业的大多数事情并不总是正确的决定,因此项目需求基础上的事情会有所不同。

Flux 最大的卖点可能是它试图在一个方向上强制执行数据流,这意味着您可以确定数据来自哪里。在非 Flux 应用程序中,组件的数据可以是自己的属性、沿组件树传递的属性、本地状态变量、调用 API 的状态变量结果。

使用 Flux:“数据来自哪里?”。答:从专卖店。Redux 更进一步,只使用一个存储。

Flux 受到批评,因为您需要大量的样板代码,但这又是一个权衡问题。

最后始终是您的电话,具体取决于您的项目需求。