为什么我们需要 Flux with React?

Why do we need Flux with React?

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

当 React 可以让我们定义应用程序的状态并在状态更改时更新视图时,为什么仅将 React 称为视图库。这不是视图的作用....它是完整的 MVC 的作用吗?

例如:here is an Todo app build only with React and here 是一个使用 Flux 和 React 构建的 Todo 应用程序。

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

理论上你不需要助焊剂。 在小型应用中,您肯定不需要助焊剂。 但是,如果您的应用程序包含数百个组件怎么办?你的组成部分之一是形式。用户填写此表单并将其内容发送到服务器。并从服务器获得新数据的响应。 并假设此响应数据和来自表单的数据对于其他组件是必需的。

  1. 无助焊剂: 您可以将数据移动到根组件,然后将其分发到所有组件。但是,如果您还需要从许多其他组件分发数据呢?这会使您的应用程序变得非常复杂。

  2. 有助焊剂: 您将数据移动到存储中,所有对该数据感兴趣的组件都可以从那里获取它。您可以更好地控制您的应用程序和源数据。

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

编辑:

Why is React called as a view library even if it can handle application state?

MVC 是一种软件架构模式。它将给定的软件应用程序划分为三个相互关联的部分(模型、视图、控制器)。 如果我们考虑反应和 MVC,它适合作为视图。但这并没有错。这并不意味着您只能将其用于视图。它允许您创建普通的应用程序。

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

换句话说,它是一个非常灵活的库,用途广泛。

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

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

Flux 很棒!但由于科技行业的大多数事情并不总是正确的决定,因此根据项目需求的不同而有所不同。

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

使用助焊剂:"where does the data come from?"。答:从商店。 Redux 更进一步,只使用一个商店。

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

最后总是您的电话,具体取决于您的项目需要。