在浏览器的Network面板里观察这三类应用,很容易产生一种直观联想。服务器返回一份已经包含页面结构的 HTML,浏览器加载若干 JavaScript 文件,页面随即可以点击、输入和导航。表面看起来,这似乎都是服务器先把界面画出来,客户端再把界面变成可交互状态。真正把执行过程拆开后,结论相当明确。Web Dynpro ABAP 和 SAP CRM WebClient UI 都没有 Angular 所定义的 hydration 过程。它们确实包含服务器端生成页面、浏览器端加载运行时脚本、注册交互能力以及局部刷新等环节,但这些环节属于服务器驱动 UI 框架的客户端初始化与请求响应机制,并不是客户端 Angular 应用对服务器渲染结果进行组件级恢复。两者中与 hydration 最相似的部分,是浏览器收到 HTML 后还要加载 SAP 提供的 JavaScript 运行库,并让控件具备事件采集、输入同步、弹窗、焦点控制和局部页面替换能力。相似之处停留在外观层面。Angular hydration 所要求的 DOM 认领、客户端组件树恢复、依赖注入环境建立、变更检测接管以及服务器端应用状态传递,在 Web Dynpro ABAP 和 WebClient UI 中并没有形成同一种架构闭环。Angular Hydration 到底恢复了什么判断某个框架有没有 hydration,不能只看服务器是否返回 HTML,也不能只看浏览器是否执行 JavaScript。需要观察服务器端渲染的页面,是否会由同一套客户端应用模型重新接管。Angular 官方文档将 hydration 描