问题描述
我正在查看github上页面上的gatsby示例,并希望解释一些代码行。
在文件
export default function getPageContext() {
// Make sure to create a new context for every server-side request so that data
// isn't shared between connections (which would be bad).
if (!process.browser) {
return createPageContext();
}
为什么在连接之间共享数据?
我可能会在Material-UI文档中的某个地方收到有关此行为的警告,但找不到它。 这似乎是如此重要,我不知道为什么将其埋在代码示例中。
这个似乎有关,但是链接的github问题+讨论并不能帮助我理解为什么页面上下文中存在此变通方法。
谢谢!
1楼
PageContext中作为例子所示的实施有一个适当的CSS注入顺序列出 :
由Material-UI注入的CSS用来设置组件的样式具有最高的特异性,这是因为注入在的底部以确保组件始终正确呈现。
重要的一点在 :
return (
<JssProvider generateClassName={this.muiPageContext.generateClassName}>
{/* MuiThemeProvider makes the theme available down the React
tree thanks to React context. */}
<MuiThemeProvider
theme={this.muiPageContext.theme}
sheetsManager={this.muiPageContext.sheetsManager}
>
{/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
<CssBaseline />
<Component {...this.props} />
</MuiThemeProvider>
</JssProvider>
);
该可让您深入了解如果不使用pageContext会发生什么情况。