我有一个组件需要在某个时候读取属于其子节点的状态变量.
这个特定的状态变量是否应该移动到父级,并通过回调进行更改?
这个特定的状态变量是否应该移动到父级,并通过回调进行更改?
正如我所看到的,其中一些可能是错误的,这些是将状态移至父母的利弊:
优点:
这似乎更多地依赖于反应的单向数据流咒语.
Con:父母的其他孩子将在状态变化时被重新渲染(不是在真正的DOM中,但它可能仍会对性能产生影响).
这里的最佳做法是什么?
数据流的最佳实践是:
>从父母到孩子:通过道具
>从孩子到父母:通过处理程序
>从不相关的组件到另一个组件:通过消息总线
例如
<Child onEvent={this.handleEvent}>
父母有:
handleEvent: function(dataFromChild) { }