React.js是否有基本的Flux实现?

3
我刚接触React.js并非常喜欢它。在阅读React.js文档时,我遇到了Flux架构。我知道Flux只是一种模式,有许多不同的Flux实现 - 包括Facebook的自己实现。我也知道React.js可以在没有任何Flux实现的情况下使用。
我的问题是:是否可以说React.js内嵌了自己的(小型)Flux实现?在我看来,React.js没有其他方法来实现其单向数据流,除非具备自己的Flux实现,当然可以用其他Flux实现来替代。

1
它不会 - Reactjs仅仅是一个渲染库。 - zerkms
2个回答

3

Flux 是处理应用程序状态的一种模式,而 React 只是视图库。你不必使用 Flux 来与 React 搭配使用,但这是推荐的方式。

目前最流行的 Flux 实现似乎是 Redux


是的,我完全明白了。我基本上是从另一个角度思考的。在我看来,当我们在React组件上监听事件并添加操作处理程序,在这些操作处理程序中手动调用setState以更新相应的状态时,我们以某种方式实现了Flux的非常有限的功能。虽然没有适当的DispatchersStores,但我们的操作处理程序通过监听变化和更新组件状态来充当两者的角色。也许我的思考方式不正确,但这就是我对事物的映射方式。 - Imran Latif
React 社区逐渐倾向于无状态组件,其中考虑存储在 this.state 中的每个状态应该由 Flux 存储库处理。 - luboskrnac
根据您的回答,我得出结论:React像其他视图库一样,有其自己的管理应用程序状态的方式。但是,为了获得单向数据流的好处(这是React默认没有的),我们需要使用一些Flux实现,如Facebook的Flux、Redux、Reflux等。我的理解正确吗? - Imran Latif
感谢您出色的回答和评论。我将把您的答案标记为正确答案 :-)谢谢 - Imran Latif

1
下面的图片是关于React的说明,绿色部分是React的一部分:它是一个渲染组件树到DOM(或其他地方)的库。单向数据流意味着React仅支持自上而下的更新:任何组件都可以通过更改状态来更新/更改自己或其子级(通过在树中向下传递props)。蓝色部分是Flux模式的一部分,React没有任何代码/库组件与此相关。

enter image description here

Flux 的各个元素相互配合,使整个循环完整:它们允许 React 组件触发动作,进而更新存储,并可基于存储中的变化重新渲染(顶级)组件。有一些库(如 Redux、Reflux、Alt)实现了 Flux 架构的各个元素。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接