Pet*_*ner 8 reactjs react-router
我有以下代码,我正在打电话ReactDOM.hydrate
.这是共享代码,有时会从节点服务器调用,有时也会在客户端浏览器中调用.hydrate
在客户端上调用它时,是否需要执行任何不同的操作(然后调用).通常,我打电话render
.
const render = Component => {
ReactDOM.hydrate(
<Router history={browserHistory}>
<FullPage />
</Router>,
document.getElementById('root')
)
}
Run Code Online (Sandbox Code Playgroud)
渲染(应用程序);
hydrate
render
无论 HTML 是否具有服务器呈现的标记,do 的工作方式与客户端类似,但是当以前没有像 not SSR 那样的标记时,会hydrate
产生一些警告,但是,它会按预期呈现您的标记。解决此问题的更好方法是检查其 SSR(假设root
为您的父 div id):
var isMarkupPresent = document.getElementById('root').hasChildNodes();
Run Code Online (Sandbox Code Playgroud)
然后你可以render
或者hydrate
:
isMarkupPresent ? hydrate(...) ? render(...)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1382 次 |
最近记录: |