跳转到内容

主题颜色

颜色来源
种子颜色
色板风格

同页混用多个框架

这个站点用 Astro 搭建,而 Astro 的岛屿架构允许同一个静态页面里放多个框架的组件。 下面两个示例跑在同一页:上面是 Vue 3,下面是 React 19,各自只在自己的 JS 到达时才水合。

Vue 3.5

这是一个真实的 Vue 组件:构建时预渲染成 HTML,滚动到可见时才水合,所以首屏没有它也能看。

React 19

这是一个真实的 React 组件,和上面的 Vue 组件跑在同一页里:两边各自带着自己的运行时, 但都只在滚动到可见时才下载自己的 JS。

文档站要长期服务于 CMS、Vue 组件、React 组件、IM、小程序等多个项目。 如果每个项目各自选一个文档框架,就要维护多套主题、多套搜索、多个部署; 而它们能否合并成一套,取决于「一个静态站能不能真的同时跑多个框架的示例」。

  • VitePress 只认 Vue,React 示例只能退回静态截图或 iframe。
  • Docusaurus / Nextra / Fumadocs 只认 React,Vue 示例同理。
  • Astro + Starlight 通过 @astrojs/vue、@astrojs/react、@astrojs/svelte 并存解决这件事, 代价是每个框架各自带一份运行时 —— 但只下载页面里真正用到的那些。

页面里混两个框架不是免费的:每多一个框架就多一份运行时下载。 所以本站的约定是 一个产品页只用它自己那个框架,只有这一页(以及架构说明)才是刻意混用。