📅  最后修改于: 2020-12-19 08:49:12             🧑  作者: Mango
Flux是Facebook内部用于使用React构建客户端Web应用程序的应用程序体系结构。它既不是库,也不是框架。它既不是库,也不是框架。它是一种对React作为视图的补充,并遵循单向数据流模型的概念的体系结构。当项目具有动态数据时,这很有用,并且我们需要以有效的方式保持数据的更新。它减少了运行时错误。
Flux应用程序在处理数据时具有三个主要角色:
在这里,您不应与Model-View-Controller(MVC)模型混淆。虽然,两者都存在Controllers,但是Flux controller-views(视图)位于层次结构的顶部。它从商店中检索数据,然后将此数据向下传递给其子级。此外,动作创建者-调度程序帮助程序方法,用于描述应用程序中可能发生的所有更改。它可以用作Flux更新周期的第四部分。
在Flux应用程序中,数据沿单个方向(单向)流动。该数据流对于通量模式至关重要。调度程序,商店和视图是具有输入和输出的独立节点。这些动作是包含新数据和type属性的简单对象。现在,让我们一一看一下磁通架构的各个组成部分。
它是React Flux应用程序的中央枢纽,并管理Flux应用程序的所有数据流。它是进入商店的回调的注册表。它本身没有真正的智能,仅充当将动作分发给商店的机制。所有商店都会自行注册并提供回调。这个地方处理所有修改商店的事件。当操作创建者向调度程序提供新操作时,所有存储都将通过注册表中的回调接收该操作。
调度程序的API有五种方法。这些是:
SN | Methods | Descriptions |
---|---|---|
1. | register() | It is used to register a store’s action handler callback. |
2. | unregister() | It is used to unregisters a store’s callback. |
3. | waitFor() | It is used to wait for the specified callback to run first. |
4. | dispatch() | It is used to dispatches an action. |
5. | isDispatching() | It is used to checks if the dispatcher is currently dispatching an action. |
它主要包含应用程序状态和逻辑。它类似于传统MVC中的模型。它用于维护应用程序内的特定状态,响应操作而更新自身,并发出change事件以警告控制器视图。
它也称为控制器视图。它位于链的顶部,用于存储逻辑以生成操作并从存储中接收新数据。它是一个React组件,用于监听变更事件并从存储中接收数据并重新渲染应用程序。
使用分派器方法可以触发对商店的分派,并包含数据的有效负载,我们称其为动作。它是将数据传递到调度程序的动作创建者或帮助程序方法。