ReactJS 组件通信

hfh*_*hc2 2 javascript reactjs

我想知道在 ReactJS 组件之间进行通信的推荐方式是什么。我看了一个相关的问题。但是,我没有找到足够的答案。关键方法似乎如下:

  1. 假设只有孩子/父母交流。
  2. parent 到 child 的通信是通过设置 props 来实现的,反之则是通过传递一个回调作为 props 来实现。

这有以下缺点:

  1. 由于兄弟姐妹不能直接通信,所有必须在兄弟姐妹之间来回传递的状态都必须存储在他们共同的父级中。这意味着父级有很多它并不真正需要的状态。
  2. 传递回调是相当不优雅的。

我想做的是向组件添加方法/成员以建立通信。我正在考虑RxJS 的思路。这将意味着以下内容:

  1. 我接受通信超出了 ReactJS 处理的功能范围。无论如何,情况似乎如此。
  2. 类的成员需要持久化。例如,父组件不应<Child />在每次调用其render函数期间创建新组件,因为在这种情况下,必须重新建立所有订阅。相反,构造函数必须创建一个this.child = <Child />对象并在render调用中渲染{this.child}

我的问题是:组件通信是由 ReactJS 以某种方式处理的,还是应该由开发人员以其他方式处理?

在第一种情况下:ReactJS 中是否有一种可扩展且优雅的方式来实现组件之间的通信?ReactJS 开发人员的基本原理是按照上述方式完成的还是我遗漏了什么?

在第二种情况下:组件应该如何通信?

Fla*_*der 5

在 React 中有两种既定的方式来在组件之间进行通信。

可观察架构: Mobx

类似 Flux 的架构: Redux

注意:如果您不确定从什么开始,请查看 mobx :)