我的直觉是,选择不在父{Q}方法中渲染组件与选择不在自己的render
方法中渲染相同组件有所不同;至少从幕后的角度来看,因为感知的最终结果是相同的。
有人可以解释是否存在差异以及它们是什么?
很抱歉由于缺少代码示例,我会在正常计算机可用时添加一些。
更新:
例如,从父组件的render
方法内部:
render
VS
来自子组件的render方法
...
render() {
return(
<ParentComponent>
{(this.state.renderSpecificChild) ? <SpecificChild /> : null}
<SomeOtherChild />
</ParentComponent>
);
}
...
父母的...
render() {
return(
{(this.props.renderSelf) ? <div></div> : null}
);
}
...
方法看起来像这样
render
答案 0 :(得分:0)
这取决于你想要什么。如果您有可以在其他地方重用的子组件并且需要进行非呈现检查,那么您将把它放在子组件中,否则如果您不希望在该应用程序的另一部分中检查此子项,则使它更具体,只需将其放在父母身上。
如果你现在还没有这种情况,那么你现在把它放在哪一个并不重要。如果你需要改变它,那么以后应该很容易重构。
答案 1 :(得分:0)
回答我自己的问题,主要的不同之处在于,当父母控制是否渲染孩子而不是孩子本身时,组件会被卸载,并且在内部,React会清理它。如果孩子自己决定是否渲染某些东西,那么它的所有方法等都会留在记忆中。