01 · 实验 E
Hydration 水合
服务端返回的 HTML 是“静态快照”(看得见、点不动)。JS 下载执行后,React 在客户端重建组件树、复用已有 DOM、附加事件与状态 —— 这一步就是水合。
服务端渲染快照(HTML 里就存在)
2026-09-22T13:08:47.774Z
注意:这段时间在浏览器端与客户端时钟不同步 —— 正是水合不匹配(mismatch)的常见来源。
水合状态:等待 JS 水合…window:
undefined0(水合前点击无效,水合后计数器可用)
(客户端时钟在服务端渲染阶段不可用 —— 用 hydrated 标记延迟渲染,避免水合不匹配)
水合发生前 vs 发生后
- 水合前:HTML 里已有文本,但按钮点击无效、
useState未生效。 - 水合后:React 复用这些 DOM(不重新创建),附加事件、恢复状态 —— 页面才"活"。
window判断:服务端渲染阶段typeof window === "undefined", 直接访问window会抛错(第 3 章 RSC 会深入讲这个坑)。