反应组件交互和全局状态更改

时间:2015-02-07 09:54:16

标签: javascript state reactjs

我对React很新,只是尝试一下。我想知道什么是一些常见的模式,或者用于处理组件之间通信的内置函数库。例如,我有输入组件和"列表"根据输入控制器中的内容从服务器更新的组件。想想一个自动完成框。由于组件具有表示逻辑,如果两者不能"除了"它们位于页面的不同部分,因此有两个不同的控制器。

另外,如果我有一个通过Ajax工作的登录/注销按钮怎么办?我想在页面上有很多不同的组件对登录/注销操作做出反应,重新配置自己会对全局"记录" state和从服务器检索的已登录的特定用户的数据。

React"做出反应的最佳方式是什么?对那些变化?感谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

如果您还没有,请查看Facebook的官方React文档。他们有一个非常全面的教程,涵盖了您将遇到的90%的场景,包括组件交互的最佳实践。他们也非常善于从没有知识建立起来。只需大约20分钟即可完成:https://facebook.github.io/react/tutorial/tutorial.html

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