我正在使用Dot Net探索React的服务器端渲染。我发现我们需要2个单独的JS文件进行服务器端渲染。一种用于客户端,另一种用于服务器。我不明白原因。
答案 0 :(得分:0)
1-我们要确保我们永远不会将任何服务器端代码导入到最终将发送到浏览器的任何文件中。原因可能是我们错误地泄漏了API密钥或一些非常敏感的数据。
2-在客户端和服务器端的路由处理方式不同。我们将在服务器上使用StaticRouter。它专门用于服务器端渲染。当我们对应用程序进行初始渲染时,它将使用静态路由器。当我们的应用程序交付给浏览器并再次呈现或在浏览器中水化时,我们将换成使用browserRouter。浏览器路由器可以查看URL,但需要手动告知StaticRouter。
import { StaticRouter } from "react-router-dom";
<StaticRouter location={req.path} context={{}}>
redux的3配置不同。在服务器端,在将页面发送到浏览器之前,我们需要确保所有数据提取均已完成,我们的组件将其数据呈现出来。
4-通过将客户端代码和服务器端代码分开,将来我们可以轻松切换前端框架或服务器端。