我不明白为什么我们需要Flux和React作为React本身让我们保持应用程序的状态。每个组件都具有初始状态,并且可以通过用户操作或任何其他异步JavaScript更改状态。
为什么React只能被视为一个视图库,因为它可以让我们定义应用程序的状态,并在状态发生变化时更新视图。这不是一个视图所做的......它完整的MVC做的是什么?
例如:here是仅使用React构建的Todo应用,而here是使用Flux和React构建的Todo应用。
如果我们只使用React构建Todo应用程序,那么为什么我们需要Flux?
答案 0 :(得分:7)
理论上你不需要助焊剂。 在小型应用中,您肯定不需要助焊剂。 但是如果您的应用程序包含数百个组件呢?你的一个组件就是形式。用户填充此表单并将其内容发送到服务器。并通过新数据从服务器获得响应。 并假设表单中的响应数据和数据对其他组件是必需的。
没有助焊剂: 您可以将数据移动到根组件,然后将其分发到所有组件。但是,如果您还需要从许多其他组件分发数据?这使您的应用程序非常复杂。
含助焊剂: 您将数据移动到商店,所有对此数据感兴趣的组件都可以从那里获取数据。您可以更好地控制应用程序和源数据。
我更喜欢redux(只有一个商店和一个真相来源)
编辑:
为什么React被称为视图库,即使它可以处理应用程序状态?
MVC是一种软件架构模式。它将给定的软件应用程序划分为三个互连的部分(模型,视图,控制器)。 如果我们考虑反应和MVC它适合作为View。但这没什么不对。它并不意味着您只能将它用于视图。它允许您创建正常的应用程序。
但另一方面,您可以将其用作其他框架的视图(例如,您可以将其与角度一起使用)。
换句话说,它是非常灵活的库,可用于多种用途。
答案 1 :(得分:4)
你没有需要 Flux与需要 MVC相同。它们都是架构,你当然可以在不使用它们的情况下构建它们。
你会在2016年建立一个非MVC应用吗?可能不是,这并不意味着人们过去没有这样做过。
Flux太棒了!但是,由于科技行业的大多数事情并不总是正确的决定,因此在项目要求的基础上,情况会有所不同。
Flux的最大卖点可能是它试图在一个方向上强制执行数据流,这意味着您可以确定数据的来源。在非通量应用程序中,组件的数据可以是自己的属性,向下传递给组件树的属性,本地状态变量,调用API的状态变量结果。
使用Flux:“数据来自哪里?”。答:来自商店。 Redux更进一步,只使用一个商店。
Flux一直受到批评,因为你需要大量的样板代码,但这又是一个权衡问题。
根据您的项目需求,最后始终是您的电话。