我的问题是,我不理解像Next.js这样的服务器端渲染单页应用框架如何在前端接收到完整的预渲染HTML而无需重写整个页面。例如,Next.js网站说明了以下内容:
默认情况下,Next.js对每个页面进行预渲染。这意味着Next.js提前为每个页面生成HTML,而不是通过客户端JavaScript完成所有操作。预渲染可以提高性能和SEO。 每个生成的HTML与该页面所需的最小JavaScript代码相关联。当浏览器加载页面时,其JavaScript代码会运行并使页面完全交互。(此过程称为水合作用。)
我理解这如何增强SPA在第一次加载页面时的响应性能。但在第一次加载之后,什么使服务器端渲染与SPA兼容? 我认为这是一个我无法理解的基本误解,因此以下是一些进一步的问题,可能有助于您理解:
- SSR SPA是否总是响应完整预渲染的HTML,还是只针对首次加载页面?
- 如果第一个问题的答案是肯定的,那么在随后的响应中,客户端如何高效地渲染仅差异部分而不是重新编写整个页面?
我在SSR与SPA兼容方面的理解有什么误解?
非常感谢提前回答这个问题的每个人!