Flux是一个作为React后端运行的库吗?

时间:2015-06-01 10:55:57

标签: javascript reactjs sails.js flux

我对React和Flux概念很新,而且我很困惑......

我来自Sails.js的背景,所以我无法说出React是什么。

我计划使用Sails.js作为一个宁静的api,与前端隔离) + React作为我的前端使用restful调用+也许websockets与sails通信

但我没有看到助焊剂适合的地方!

2 个答案:

答案 0 :(得分:4)

没有

Flux是design pattern,而不是框架或库。您可以在不使用React的情况下使用Flux,反之亦然,尽管它们经过优化可以很好地相互协作。

Flux应用程序有三个主要部分:DispatcherStoresViews(不要与Model-View-Controller混淆)。 EventEmitter通常用作StoresReact的基础,作为Views的基础。其他地方不易获得的一个Flux是Dispatcher,但如果你愿意,你可以自己写一个。

Controllers确实存在于Flux应用程序中,但它们是控制器视图 - Views经常位于层次结构顶部,用于从商店检索数据将这些数据传递给他们的孩子。此外,动作创建者 - 调度程序帮助程序方法 - 通常用于支持语义分派器API。

Flux避开MVC而支持单向数据流。当用户与React视图交互时,视图会将Action通过中心Dispatcher传播到包含应用程序数据和业务逻辑的各种Stores,所有受影响的观点。虽然你不需要React来实现这个模式,但它的设计特别适用于React的声明性编程风格,它允许商店发送更新而不指定如何在状态之间转换视图。 / p>

可以在official Flux repo找到更多信息。

enter image description here

答案 1 :(得分:3)

Flux绝对不是使用React的要求,也不是React的“后端”。它只是构建使用React编写的应用程序的常见模式。这是有据可查的here

这只是一个客户端解决方案。它对任何特定的Web服务器都没有硬性要求(但是如果你安装了NodeJS就很方便,你可以使用类似Browserify的东西来编译和打包脚本)。

从您的问题中不清楚您计划使用哪些Sails部分。如果你想以 isomorphic 的方式使用React(意味着你在Web服务器上运行React代码,然后由React客户端代码“附加”,而不重新渲染),那么如果您使用Waterline,数据管理可能会成为一个问题。但是,如果您只是在客户端上使用React,那么它可能更容易集成。

但是,再次,没有必要使用Flux。您可以遵循使用React JS关于数据流(父对子)的基本原则,并使用其他数据存储和同步库。 React并不是那种看法。

此外,虽然Facebook有一个Flux实现here,但您会发现该模式的几十种实现,其中包含here的各种调整和增强功能。您还会在同一页面上注意到有许多其他可能有用的免费库。