renderToString 生成 HTML 字符串。window.__INITIAL_STATE__。createSSRApp 创建实例。这是 SSR 最常见的问题。
现象:控制台报错 Hydration node mismatch,Vue 被迫丢弃服务端 HTML,在客户端重新渲染(导致性能损耗和闪烁)。
常见原因:
<p> 里面包了 <div>(浏览器会自动修正 HTML 结构,导致 Vue 找不到对应的节点)。Date.now() / Math.random():服务端执行结果和客户端不一致。typeof window 判断:服务端渲染了 A,客户端判断有 window 渲染了 B。解决:
v-if/else 逻辑在双端一致。<ClientOnly>),使用 <ClientOnly> 包裹或 onMounted 后再渲染。beforeCreate 和 created。mounted 不会执行。