蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 架构论
  3. 正文

Island 架构与部分水合:重新思考前端性能与交互的边界

2026年1月2日 10点热度 0人点赞 0条评论

在前端框架不断“做加法”的这些年,我们习惯了 全量客户端渲染(CSR),也逐步接受了 SSR / SSG + Hydration 这种折中方案。但随着应用规模扩大,一个问题愈发明显:

真的有必要让整个页面都变成可交互的 JavaScript 应用吗?

Island 架构,正是在这种反思下诞生的一种前端架构模式,而“部分水合”则是它最核心的技术支撑。


一、传统 Hydration 的问题在哪?

1. 全量 Hydration 的工作机制

以 React / Vue SSR 为例:

  1. 服务端输出完整 HTML
  2. 浏览器加载 JS bundle
  3. 对整棵 DOM 树执行 Hydration
  4. 绑定事件、创建状态、建立响应式系统

即使页面中 90% 是静态内容,也要 Hydrate 100%


2. 带来的现实问题

  • 首屏 JS 体积过大
  • Hydration 阻塞主线程
  • TTI(可交互时间)变慢
  • 移动端性能尤为明显

页面“看起来”已经出来了,但“点不了”。


二、Island 架构是什么?

1. 核心思想一句话

页面默认是静态的,只有需要交互的部分才是“动态岛屿(Islands)”


2. Island 架构的页面模型

[ 静态 HTML ]
 ├── Header(纯静态)
 ├── Article(纯静态)
 ├── 🔹 SearchBox(Island,需交互)
 ├── Content(纯静态)
 ├── 🔹 Comment(Island,需交互)
 └── Footer(纯静态)
  • 大部分内容:0 JS
  • 少量组件:独立加载、独立水合

3. Island 的几个关键特征

特性说明
局部 JS每个 Island 自己的 bundle
延迟加载可视 / 交互时才加载
解耦不依赖全局状态树
框架无关React / Vue / Lit 都可以

三、什么是“部分水合(Partial Hydration)”?

1. 定义

部分水合 指的是:

只对页面中需要交互的组件进行 Hydration,而不是整页


2. 与传统 Hydration 对比

维度全量 Hydration部分 Hydration
Hydration 范围整页指定组件
JS 执行量大极小
首屏交互慢快
架构复杂度低稍高
性能上限有瓶颈更高

3. 常见触发策略

  • on:load 页面加载后
  • on:visible 进入视口
  • on:idle 浏览器空闲
  • on:interaction 用户首次交互

四、Island 架构的实现方式

1. Astro:最典型的 Island 架构实现

Astro
---
import Counter from '../components/Counter.jsx';
---

<article>
  <h1>文章内容</h1>
  <p>这是纯静态 HTML</p>

  <Counter client:visible />
</article>

特点:

  • 默认 0 JS
  • client:* 明确声明水合策略
  • 天然支持多框架混用

2. 框架层面的演进

框架对应能力
AstroIsland 原生
QwikResumability(更激进)
Vuev-once / 懒加载组件
ReactServer Components
Lit天然适合 Island

五、为什么 Lit / Web Components 非常适合 Island?

1. 技术契合点

  • Web Component 天然隔离
  • 无全局运行时依赖
  • 单组件即可完成 Hydration
  • 可独立注入到任意 HTML
HTML
<yc-tooltip></yc-tooltip>
<script type="module" src="/yc-tooltip.js"></script>

只加载你需要的那一个组件。


2. 与微前端 / 多框架共存友好

  • 一个 Island = 一个自包含组件
  • 不污染宿主应用
  • 适合 CMS / 内容型站点

六、Island 架构适合哪些场景?

非常适合

  • 技术博客 / 文档站
  • 营销页 / 官网
  • 内容型平台
  • 组件库文档
  • SSR + Web Components 项目

不太适合

  • 强交互、状态高度耦合的后台系统
  • 游戏 / 实时协作应用
  • 全局状态驱动 UI 的复杂应用

Island 不是银弹,它是 “内容优先型页面” 的最优解。


七、Island 架构带来的思维转变

从:

“整个页面是一个应用”

转向:

“页面是 HTML,交互只是点缀”


这意味着:

  • 更少的 JS
  • 更快的首屏
  • 更清晰的组件边界
  • 更可持续的性能优化空间

八、总结

Island 架构与部分水合并不是对现代前端的否定,而是一次去中心化、去过度工程化的回归:

  • HTML 回到核心位置
  • JavaScript 只做必须的事
  • 性能不再靠“优化”,而是靠“设计正确”

如果你正在构建 内容驱动型 Web 应用,Island 架构,值得认真考虑。

标签: Island 架构 Partial Hydration 前端性能优化 前端架构 部分水合
最后更新:2026年1月2日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
Island 架构与部分水合:重新思考前端性能与交互的边界 Biome:下一代前端一体化工具链,正在取代 Prettier + ESLint? 生产环境下的 Token 前端存储方案与安全权衡 程序员的 PPT 终极形态:Slidev 演示文稿工具 Bun:下一代 JavaScript 一体化工具链全面解析 架构师应该具备的专业素养:如何成为一名优秀的系统架构设计师
Rsbuild:由 Rspack 驱动的新一代高性能 Web 构建工具i18n 高效实现方案:前端国际化神器安利一波字节跨平台框架 Lynx 开源:为 Web 开发者带来原生级跨端体验的全新选择TresJS:用 Vue 构建现代化交互式 3D 体验npm 安全更新:把握令牌变更与发布体系的迁移参考指南Code Inspector:页面开发提效的神器
Ajax缓存问题解决方案 基于 docx-preview 的 Word 预览组件实现方案分享 StompJs:STOMP的服务器/javascript客户端的解决方案 免费开源托管服务全解析:手把手教你用 Vercel + GitHub 一键部署前端项目 CSS3之Opacity多浏览器透明度兼容处理 flutter系列之开发模拟器debug
最近评论
渔夫 发布于 2 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2