小编jay*_*e78的帖子

SSR:在反应应用程序中动态导入如何在客户端加载组件时处理 html 未匹配

由于 webpack 4 和 react-loadable,我刚刚开始在服务器端使用代码拆分和动态导入来渲染 react 16 应用程序。

我的问题可能听起来很愚蠢,但有些事情我不太明白。

在服务器端,我在等待 webpack 加载所有模块,然后再将 html 吐出到客户端。

在客户端,在渲染加载的组件之前,我渲染了一种加载组件。

所以基本上服务器呈现加载的组件:

<div>loaded component</div>
Run Code Online (Sandbox Code Playgroud)

客户端对加载组件进行水合:

<div>loading...</div>
Run Code Online (Sandbox Code Playgroud)

显然,问题是 React 在 hydrate() 之后抱怨,因为服务器和客户端之间存在未命中匹配。

在几秒钟内,客户端首先呈现

<div>loading...</div>
Run Code Online (Sandbox Code Playgroud)

而服务器已呈现并发送到客户端,加载组件的 html。

有人可以启发我吗?它是如何工作的?加载组件时如何防止首次渲染时出现不匹配?

dynamic-import code-splitting server-side-rendering react-16 webpack-4

5
推荐指数
1
解决办法
3148
查看次数