我对 React.js 组件之间的通信有一些疑问。这是在不使用 redux 的情况下。这是我的组件层次结构的样子。
App
/ \
/ \
| |
▼ ▼
Board Dashboard
|
▼
Cell
以下是我用于组件通信的一些假设/模式。
如果我们需要将消息从父组件传递到子组件,我们可以使用 props 来实现。例如,在创建 Board 时,我们将行、列作为props传递。
<Board rows={5} cols={5} />
如果我们需要将消息从子组件传递到父组件,我们可以通过传递回调来实现。例如,我们将 play() 回调从 Board 传递到 Cell。在 Cell 中,我们将 onClick 处理程序设置为传递的回调,即 play()。
<Cell onClick={this.props.play(this.props.id)} />
我遇到的一个悬而未决的问题是如何在兄弟组件之间传递消息(例如仪表板到单元)。一个用例是在单击仪表板组件中的重置按钮时重置我的 Board 组件。这是仪表板中的重置按钮的样子。我的问题是,一旦重置消息到达 App 组件,将其传递给 Board 的最佳做法是什么?
<input type="button" value="reset" onClick={this.props.reset} />
获得有关 1 和 2 的一些反馈会很棒。另外,3 的最佳实践。