Performance 不从父级渲染组件和#x27;s渲染方法,而不从其自己的渲染方法渲染组件?
我的直觉是,选择不在父级的Performance 不从父级渲染组件和#x27;s渲染方法,而不从其自己的渲染方法渲染组件?,performance,reactjs,components,render,Performance,Reactjs,Components,Render,我的直觉是,选择不在父级的render方法中渲染组件与选择不在其自己的render方法中渲染相同组件有区别;至少从幕后来看,因为感知到的最终结果是相同的 有人能解释一下是否确实存在差异,它们是什么 很抱歉缺少代码示例,当我有一台普通计算机可用时,我会添加一些 更新: 例如,从父组件的render方法内部: ... render() { return( <ParentComponent> {(this.state.renderSpecif
render
方法中渲染组件与选择不在其自己的render
方法中渲染相同组件有区别;至少从幕后来看,因为感知到的最终结果是相同的
有人能解释一下是否确实存在差异,它们是什么
很抱歉缺少代码示例,当我有一台普通计算机可用时,我会添加一些
更新:
例如,从父组件的render
方法内部:
...
render() {
return(
<ParentComponent>
{(this.state.renderSpecificChild) ? <SpecificChild /> : null}
<SomeOtherChild />
</ParentComponent>
);
}
...
这取决于你想要什么。如果您的子组件在其他地方可重用,并且需要进行非呈现检查,那么您可以将其放入子组件中,否则,如果您不希望此检查出现在应用程序的另一部分中,您可以将其设置得更具体,只需将其放入父组件中即可
如果你现在还没有这个场景,那么你把它放在哪个场景中并不重要。如果以后需要更改,重构应该很容易。回答我自己的问题,主要区别在于,当父级控制是否呈现子级而不是子级时,组件会卸载,并且在内部,React会清理。如果孩子自己决定是否渲染某些东西,那么它的所有方法等都会保留在内存中。我明白了。然而,我的问题更多的是“在幕后发生了什么,这两种方法在幕后有什么不同?”?例如,组件的生命周期方法是否在一种情况下保存在内存中,而不是在另一种情况下?我希望我能澄清一点
...
render() {
return(
{(this.props.renderSelf) ? <div></div> : null}
);
}
...
...
render() {
return(
<ParentComponent>
<SpecificChild />
<SomeOtherChild />
</ParentComponent>
);
}
...