跳到正文

注水激活

Hydration

高级网页

注水激活(Hydration)是前端框架在浏览器里接管服务端已生成的页面,让组件状态和交互运行起来的过程。它解决了页面内容先显示、按钮等框架交互随后才能使用的问题,例如商品页先展示信息,再启用加入购物车按钮。

你可能会说:「我想让页面内容先显示出来,等浏览器加载完代码后,按钮再能正常操作。」

读之前建议先了解(这是一个高级概念)

动手看看

山间杂货
购物车 · 0 件
购物车 · 1 件
轻量保温杯
500 mL · 雾蓝色
¥ 89.00
加入购物车
加入购物车
已加入购物车
商品信息已显示,交互尚未就绪
交互已就绪,可以操作
已加入购物车
页面状态

先看默认状态,再切到「注水激活后」,用鼠标悬停、按住按钮,或用 Tab 聚焦它。最后切到「已加入购物车」查看操作结果。

商品名称和价格已经由服务端生成并显示出来了,但按钮还不能用:看得见页面,不等于框架交互已经接管。

要点

  1. 1

    先有页面内容,再接管交互

    服务端先把页面内容生成好,浏览器收到后就能显示。接着,前端框架运行组件代码,接管已有的页面结构,让按钮点击、输入状态等交互按组件逻辑工作。

  2. 2

    显示出来不等于已经可操作

    注水激活完成前,页面上的文字和图片可能已经可见,但依赖框架事件处理的控件可能还不能用。普通链接这类浏览器原生功能则不一定受影响,所以要分清是哪种交互。

  3. 3

    初始内容对不上会出问题

    浏览器首次运行组件时,如果得到的内容和已有页面不一致,框架可能报告不匹配,或重新处理部分页面。比如首屏直接用浏览器当前时间生成文案,就可能与服务端结果不同。

容易混淆的地方

服务端渲染和静态站点生成负责提前产出页面内容;注水激活是在浏览器中接管这些内容,让框架交互运行起来。它也不是纯客户端渲染:后者主要由浏览器运行代码后生成页面。页面能先显示,只说明内容已到达,不代表依赖框架的交互已经就绪。

什么时候用

适合用

  • 做服务端渲染的商品页,希望价格和介绍先显示,再让规格选择、加入购物车运行起来。
  • 做预先生成的帮助中心页面,文章先显示,同时保留由前端组件管理的搜索和筛选交互。

不适合用

  • 做一篇只有文字和普通链接的说明页,没有框架交互;直接输出静态页面就够了。
  • 做一个完全由浏览器获取数据并生成界面的内部工具,没有预先生成的页面内容;按纯客户端渲染设计即可。

练一练

商品页的标题和价格打开时就能看到,但点击由框架组件实现的「加入购物车」要等一会儿才有反应。你会怎样向 AI Agent 描述这个现象?

让 AI 帮你做

请检查这个商品页的注水激活过程:页面内容已提前生成,但加入购物车按钮会短暂无法响应。先确认它是否由框架事件处理、交互何时就绪,再排查脚本加载和初始内容不匹配;不要把内容可见当成交互已就绪。

接下来学什么