不从父渲染方法中渲染组件而不从其自己的渲染方法渲染组件之间的差异?

时间:2017-02-28 09:53:20

标签: performance reactjs components render

我的直觉是,选择不在父{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

2 个答案:

答案 0 :(得分:0)

这取决于你想要什么。如果您有可以在其他地方重用的子组件并且需要进行非呈现检查,那么您将把它放在子组件中,否则如果您不希望在该应用程序的另一部分中检查此子项,则使它更具体,只需将其放在父母身上。

如果你现在还没有这种情况,那么你现在把它放在哪一个并不重要。如果你需要改变它,那么以后应该很容易重构。

答案 1 :(得分:0)

回答我自己的问题,主要的不同之处在于,当父母控制是否渲染孩子而不是孩子本身时,组件会被卸载,并且在内部,React会清理它。如果孩子自己决定是否渲染某些东西,那么它的所有方法等都会留在记忆中。