什么是「注水」(Hydration)?注水过程是怎样的?

注水指 SSR 把 HTML 发给浏览器后,客户端 JS 接管已存在的 DOM 并绑定事件,让它变成可交互的 React/Vue 应用。

过程:

  1. 服务端渲染出带内容的 HTML,随页面返回
  2. 浏览器先快速显示内容(首屏可见,但还不可交互)
  3. 客户端 JS 加载,React/Vue 用同一套组件重新渲染(不生成新 DOM,而是"复用"已有 DOM),并把事件监听器绑定上去
  4. 注水完成 → 页面可交互
// 服务端
const html = renderToString(<App />)
// 客户端(React 18 createRoot)
hydrateRoot(document.getElementById('root'), <App />)

注水是「让静态 HTML 活起来」的过程;若服务端/客户端渲染结构不一致会报 hydration mismatch。

同分类其他题目