【发布时间】:2018-04-05 17:12:12
【问题描述】:
我创建了一个非常简单的Next.js-项目,有两个页面。
两个页面都包含一个基本的布局组件:
// Page Component
render() {
return (
<PageLayout>
This is page A
</PageLayout>
);
}
PageLayout 看起来像这样:
// PageLayout
render() {
return (
<div>
<Header />
{this.props.children}
</div>
);
}
所以两个页面都使用PageLayout 来呈现一个基本模板,该模板在两个页面上也包含相同的Header。
我的问题是Header 组件在两个页面之间导航时重新创建。我认为这不仅从性能的角度来看很糟糕,而且因为在这种情况下,所有 DOM 节点和所有 React 组件都失去了它们的本地状态。
所以我想知道我是否缺少某些东西,或者我们如何在正确重用的页面之间创建共享组件(当然,至少在它们的状态没有改变的情况下)。
【问题讨论】:
-
我很确定你不能(根据我对 nextjs 的经验)。如果您不想丢失 Header 中的状态,那么您需要存储它,例如在 redux 中。
标签: javascript reactjs nextjs