什么是「注水」(Hydration)?注水过程是怎样的?
注水指 SSR 把 HTML 发给浏览器后,客户端 JS 接管已存在的 DOM 并绑定事件,让它变成可交互的 React/Vue 应用。
过程:
- 服务端渲染出带内容的 HTML,随页面返回
- 浏览器先快速显示内容(首屏可见,但还不可交互)
- 客户端 JS 加载,React/Vue 用同一套组件重新渲染(不生成新 DOM,而是"复用"已有 DOM),并把事件监听器绑定上去
- 注水完成 → 页面可交互
// 服务端
const html = renderToString(<App />)
// 客户端(React 18 createRoot)
hydrateRoot(document.getElementById('root'), <App />)注水是「让静态 HTML 活起来」的过程;若服务端/客户端渲染结构不一致会报 hydration mismatch。