ReactJS组件通信

时间:2016-10-27 16:09:16

标签: javascript reactjs

我想知道ReactJS组件之间的通信建议方式是什么。我看了related question。但是,我没有找到足够的答案。关键方法似乎如下:

  1. 假设只有孩子/父母沟通。
  2. 通过设置道具实现从父母到孩子的交流,反过来通过将回调作为道具来实现。
  3. 这有以下缺点:

    1. 由于兄弟姐妹不能直接沟通,所有必须在兄弟姐妹之间来回传递的状态必须存储在他们的共同父母中。这意味着父母有很多状态,并不是真正需要的。
    2. 传递回调是相当不优雅的。
    3. 我想要做的是添加组件方法/成员以建立通信。我在想RxJS。这意味着以下内容:

      1. 我接受通信超出了ReactJS处理的功能范围。无论如何,情况似乎如此。
      2. 类的成员需要持久化。例如,父组件在每次调用其<Child />函数期间不应创建新的render,因为在这种情况下,必须重新建立所有订阅。相反,构造函数必须创建一个this.child = <Child />对象,而不是render调用渲染{this.child}
      3. 我的问题是:组件通信是否以某种方式由ReactJS处理,或者这是开发人员应该以其他方式处理的事情?

        在第一种情况下:是否有可扩展且优雅的方式可以在ReactJS中实现组件之间的通信? ReactJS的开发人员的理由是按照上述方式完成的还是我缺少的东西?

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

1 个答案:

答案 0 :(得分:4)

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

可观察的建筑: Image for the problem

像建筑一样的通量: Mobx

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