在 React.js 中,我将如何设置一个简单的全局事件系统来在组件之间进行通信?

mee*_*son 5 javascript jquery components communication reactjs

在稍微玩弄 React 之后,我想我最喜欢它,但是有几件事我正在努力弄清楚该怎么做。其中之一是不在父子关系中的组件之间的基本通信。

正如我从教程中了解到的,大多数通信是通过使用状态和道具的父子关系完成的,这看起来很简单。但是当没有父子关系时,文档建议设置一个全局事件系统,让我自己解决。不太确定这是什么意思。

让我们以我正在处理的问题为例。我的<SearchBar />页面导航栏中有一个组件,我想用它来填充<ResultsTab />页面其他位置组件中的搜索结果。试图通过共同的父母将这些联系起来是不切实际的。那么我将如何使用 SearchBar 的结果更新 ResultsTab?我确定我可以通过 jQuery 来完成它而忘记 React,但是正确的 React 方法是什么?

Mat*_*Feu 0

Facebook 为此发布了一个名为 Flux 的模式 - https://github.com/facebook/flux。在简单的应用程序中它可能非常冗长,但效果很好。

与所有这些事情一样,社区正在快速发展并做出很多改变。我建议习惯非常基本的示例,然后阅读https://medium.com/@dan_abramov/the-evolution-of-flux-frameworks-6c16ad26bb31并尝试其他一些示例。

@dan_abramov 的https://github.com/gaearon/redux目前似乎很受欢迎。