本节摘要:在四大基础框架之外,还有两股力量值得正视:一类是 Next.js、Nuxt.js 这样的"元框架"——站在 React/Vue 之上补齐全栈能力(SSR、SSG、路由、API);另一类是 Astro、SolidJS、Qwik 这些"新势力"——分别押注岛屿架构、细粒度响应式与可恢复性。本节逐一拆解它们的核心卖点与生态位,帮你把选型视野从"基础框架"扩展到"完整技术栈"。
阅读完本节,你应当能够:
"选框架"这件事往往不是一次决策,而是两层的叠加。第一层选基础框架(React/Vue/Angular/Svelte),第二层选怎么把它用起来——而这一层,越来越多人直接选一个"元框架"。
以 React 为例:裸 React 只解决 UI 渲染。你要 SSR?要 SEO?要文件系统路由?要 API 接口?要么自己拼一堆库,要么直接上 Next.js——它把这些全包了。于是我们看到一个趋势:"React"和"Next.js"的边界在招聘、教程、项目实践中越来越模糊。选型时说"用 React",实际落地几乎等于"用 Next.js"。
同理,Vue 生态里对应的"全栈默认选项"是 Nuxt.js。搞清楚这一层,你的选型才完整。
💡 关键直觉:把基础框架比作发动机,元框架就是整辆车——发动机决定动力特性,但"要不要空调、要不要安全气囊"是元框架决定的。
由 Vercel 开发维护,核心能力四件套:
getServerSideProps 在每次请求时服务端取数、渲染 HTML,首屏快、SEO 好。getStaticProps/getStaticPaths 在构建时生成 HTML,部署到 CDN,性能极致。适用:新闻门户、电商详情页、内容型网站、全栈应用。代价:要理解 SSR/SSG 概念,部署成本高于纯 CSR,简单 SPA 用它偏重。
与 Next.js 定位相同,基于 Vue。核心能力:SSR、SSG、文件系统路由、模块系统(认证、数据存储等可插拔)、自动导入、asyncData/fetch 数据获取、中间件。
与 Next.js 的差异主要在生态绑定:团队用 Vue 就选 Nuxt,用 React 就选 Next。两者在"好用的程度"上不相上下,选择通常由基础框架决定。
Astro 的核心信念很激进:默认不向浏览器发任何 JavaScript。页面大部分是静态 HTML+CSS,只有需要交互的"岛屿"才会水合为客户端组件。
多框架支持:同一项目里可以混用 React、Vue、Svelte 组件——各写各的岛屿。适用:博客、文档站、产品官网、营销页。代价:重交互应用里,岛屿式水合不如传统 SPA 灵活。
SolidJS 的 API 长得极像 React(JSX、组件、信号机制),但实现完全不同:
适用:高性能仪表盘、实时数据展示、性能敏感组件库。代价:生态与社区远小于 React,调试工具不够成熟。它的价值更像"给 React 系开发者一个追求极致性能时的备选"。
Qwik 想解决 SPA 的一个老大难:水合成本。传统 SSR 下,浏览器拿到 HTML 后要下载并执行整套 JS 才能交互,这份"复活账单"不小。Qwik 的做法是:
适用:对首屏加载有极致要求的电商、门户、大型复杂应用。代价:概念新颖、学习曲线陡、生态很新、工具链不成熟。它是"未来方向"的候选,不是当下稳的选择。

第一阶段:定基础框架(React/Vue/Angular/Svelte),逻辑见 2.1-2.4。
第二阶段:定元框架与配套,逻辑如下:
| 你的需求 | 推荐路径 |
|---|---|
| React 全家桶 + SSR/SSG | Next.js |
| Vue 全家桶 + SSR/SSG | Nuxt.js |
| 内容型网站、极快首屏 | Astro |
| 极致运行时性能且接受小生态 | SolidJS |
| 极致首屏、愿承担新生态风险 | Qwik |
| 只需标准 SPA | 基础框架 + Vite 即可,不上元框架 |
⚠️ 常见坑:默认"React 项目就该上 Next.js"。如果产品是纯内部工具、无 SEO 需求、无 SSR 需求,裸 React + Vite 更轻、构建更快、运维更简单。元框架是加层,加层必有成本。
💡 关键直觉:判断要不要元框架,问两个问题——"页面需不需要被搜索引擎收录?""首屏速度是不是关键指标?"两个都否,元框架大概率是负担。
新势力框架的共同风险是生态与人才:招人难、踩坑资料少、周边库要自己造。商业项目里,"稳定但平庸"通常优于"炫酷但孤独"——除非性能指标硬性卡着你。
面对元框架与新型渲染方案,纠结的本质是没把需求拆开。这里给一个可用的决策捷径,按顺序过三个问题。第一问:页面内容是否需要被搜索引擎收录?要,就往 SSR/SSG 方向走(Next.js/Nuxt.js/Astro);完全不要(纯登录后的内部工具),裸 SPA + Vite 就够。第二问:内容更新频率如何?高频动态(购物车、用户面板)偏向 SSR,低频静态(博客、文档)偏向 SSG 或 Astro。第三问:首屏速度是不是生死指标?是,才需要认真考虑 Astro 的零 JS 或 Qwik 的零水合;不是,就用成熟方案把精力留给业务。三个问题走完,大部分纠结会自动消失——你会发现很多"新技术诱惑"在真实需求面前根本不成立。
把两阶段选型合起来看,常见组合可以归纳成一张选择矩阵:React + Next.js 是全栈 SSR 应用的事实标准组合;Vue + Nuxt.js 是 Vue 生态的对位;React/Vue + Vite 是内部工具与标准 SPA 的轻量组合;Astro + 任意基础框架的组件是内容站的极速方案;Svelte + SvelteKit 是"性能敏感 + 愿意承受生态风险"的组合。值得注意的是,这些组合不是固定套餐,Astro 甚至允许你在同一项目里同时用 React 和 Vue 的组件。选型的真正自由,来自把"基础框架"与"渲染模式"两个维度解耦思考——这也是第 5 章渲染模式之争会进一步展开的主题。
选了元框架,就等于把基础框架的升级节奏和元框架绑在了一起。Next.js 升级往往要求同步升级 React 版本,Nuxt 同理。这份"版本耦合"意味着:基础框架发新版,你不能立刻跟上,得等元框架适配;元框架的主版本跳变(比如 Next 12 到 13 的 App Router 变革),会带来不小的迁移成本。选型时把这个隐性成本写进评估表:如果团队重视"跟随上游最新版"的节奏,元框架会拖慢你;如果团队本来就用保守的 LTS 策略,那耦合反而是"少操一份心"。
面对任何"新势力"框架,用一份五分钟清单快速定性:一看它回答的核心问题是不是真问题(比如 Qwik 的零水合,前提是"水合成本"确实在疼你);二看它的生态有没有"你绕不开的那块"(图表、编辑器、地图?);三看它有没有知名生产案例(纯演示级项目不算);四看它的更新与维护节奏(仓库死没死、版本多久一发);五看"如果它两年后凉了,你的迁移成本多高"。前四问判断它值不值得入,最后一问判断你承担不承担得起。把这份清单贴在案头,它会帮你拦住 90% 的"因为新鲜想试"的冲动——尤其当新框架来自个人或小团队、又恰好在性能指标上很好看的时候。
把两阶段选型法完整走一遍:假设要做"企业技术文档站",需求是内容更新不频繁、SEO 重要、首屏要快、需要少量交互(搜索、目录折叠)。走查开始:第一阶段定基础框架——先问交互密度,答案是"低",于是不需要重型 SPA 框架,React/Vue 都能胜任但属于"用牛刀杀鸡";再问内容形态,答案是"Markdown 为主",这直接指向文档工具链。第二阶段定渲染方案——内容静态、更新不频繁,优先 SSG;SEO 要强,排除纯 CSR。于是候选收敛为:Astro(内容站最优)、VitePress(Vue 生态文档专用)、Next.js/Nuxt.js 的 SSG 模式(偏重)。最终选择大概率是 Astro 或 VitePress。这个走查示范了"先约束后选择"的完整姿势:每一步都因需求排除掉一批候选,最后剩下的是真正匹配的那两三个——而不是靠"哪个火选哪个"。
这套走查方法的精髓,是把"选型"从一次孤立的投票,变成一条被需求一步步逼出来的推导链。每一次"排除",你都能说出一个具体的需求理由;最后的答案不是某人的偏好获胜,而是"约束条件"获胜。这也是为什么我们反复强调:需求分析不是选型的第一步,而是选型的全部地基——第 4 章会把这条链扩展到打分与 POC 验证,补上"最后两三个怎么定胜负"的环节。
四位选手和两大势力的画像都有了,下一章进入核心:选型到底该比哪些维度,怎么比才不靠拍脑袋。