2015-02-07 82 views
4

我对React很新,只是试验它。我想知道什么是一些常见的模式,或者库是用于处理组件间通信的内置函数。例如,我有输入组件和根据输入控制器中的内容从服务器更新的“列表”组件。想想一个自动完成框。由于组件具有表示逻辑,如果两者不能“除”以外怎么办?他们在页面的不同部分,因此有两个不同的控制器。React组件交互和全局状态更改

另外,如果我有一个通过Ajax工作的登录/注销按钮,该怎么办?我想,整个页面上的许多不同组件都会对登录/注销操作做出反应,重新配置它们自己,以符合全局“已记录”状态以及从服务器为已登录的特定用户检索到的数据。

什么是React对这些变化做出“反应”的最佳方式是什么?谢谢

回答

2

您应该结账FluxDispatcher。 它有点像pub/sub系统,但没有pub/sub系统的问题。优点是所有事件都在一个方向上流动,这使得架构变得更加简单和可扩展。

+0

由于该问题是专门针对React的,因此更容易查看实际的'Flux'实现'redux'和'redux-react'。 – 2016-12-26 02:53:32

0

如果你还没有,你应该检查Facebook的官方React文档。他们有一个非常全面的教程,涵盖了90%的场景,包括组件交互的最佳实践。他们也非常擅长从没有知识的建设。只需要大约20分钟即可完成:https://facebook.github.io/react/tutorial/tutorial.html

正如另一个答案中提到的,Redux是一个了不起的库,用于处理应用程序状态并保持组件不相互了解。基本上,您可以拥有父级和子级组件,但是如果您拥有超过2级子级的组件,则应考虑使用Redux(或Flux)来处理不相关组件之间的状态。 Redux解决的问题只是分解这些依赖关系,并且仍然允许组件拥有单一的事实根源。他们的官方文档也非常好:http://redux.js.org/