Astro 适合做什么网站

2026 实用指南:Astro 适合做什么、不适合做什么;什么时候该用 Next.js、Hugo 或纯 HTML 替代。

Astro 是内容型网站的不错默认选择,但不是万能答案。这篇讲清楚它擅长什么、卡在哪、怎么决定。

问题背景

Astro 流行起来,是因为它默认几乎不打包 JS,让内容站又快又便宜。但同样的架构在做强交互应用时很别扭。到 2026 年,Astro 已经成熟,问题不是”它行不行”,而是”适不适合我这个项目的形态”。

判断标准

  • 站点主要是静态内容——博客、文档、营销页、小型商店。
  • 想轻松拿到漂亮的 Core Web Vitals。
  • 不需要跨多页面共享复杂的客户端状态。
  • 能接受写 .astro.mdx 文件。
  • 团队小,不需要重型应用框架的强约束。

快速结论

内容是产品时用 Astro;交互是产品时用 Next.js;连 Astro 都嫌重时用纯 HTML。

实操步骤

  1. 列出站点的页面类型:营销、博客、文档、仪表盘、结账。挨个标”静态”或”交互”,静态占 70% 以上 Astro 就是合理默认。

  2. 起官方模板,先跑起来再决定:

npm create astro@latest -- --template starlight my-spike
cd my-spike
npm install
npm run dev      # localhost:4321
  1. 接一次 content collection——这是 Astro 最强的能力,也是决定前必须亲手试的事:
// src/content/config.ts
import { defineCollection, z } from 'astro:content';

const articles = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    publishedAt: z.date(),
    tags: z.array(z.string()).default([]),
    draft: z.boolean().default(false),
  }),
});

export const collections = { articles };

src/content/articles/hello.mdx 放一篇示例,用 getCollection('articles') 渲染。这套流程顺手,答案就有了。

  1. 需要 React / Vue / Svelte 岛屿,按需加一个,别同时混三个:
npx astro add react       # 或 vue, svelte, solid, preact
---
// src/pages/index.astro
import Counter from '../components/Counter.tsx';
---
<html>
  <body>
    <h1>静态标题</h1>
    <Counter client:load />   <!-- 只有这个岛会 hydrate -->
  </body>
</html>
  1. 构建后看产物,纯内容页的 JS 应该接近 0:
npm run build
ls -lh dist/_astro/*.js 2>/dev/null | head
# 不含岛的内容页基本 0 KB JS
  1. 确认目标 host:静态输出几乎处处能跑;hybrid / SSR 需要 adapter:
// astro.config.mjs —— hybrid 示例
import { defineConfig } from 'astro/config';
import vercel from '@astrojs/vercel/serverless';

export default defineConfig({
  output: 'hybrid',
  adapter: vercel(),
});
  1. 一天 spike 完再决定,中途换框架代价高。

容易踩的坑

  • 把 Astro 选去做应用型项目,每加一点交互都别扭。
  • 一次接太多 UI 框架(React + Vue + Svelte),包体和复杂度同时上升。
  • 不用 content collection 而是临时存数据,等于放弃 Astro 最强的能力。
  • 以为 Astro 能替 CMS——非技术编辑还是需要前置 CMS。
  • 把 Astro 部到重服务端的平台,静态部署本来更便宜更快。

这篇适合谁

做内容站、文档、营销页、小作品集的独立开发者。

这篇不适合谁

做仪表盘、复杂 SaaS、客户端状态和路由很深的应用团队。

FAQ

  • 2026 Astro 能上生产吗: 可以。多年稳定,生态成熟,很多生产级内容站都在用。
  • Astro 里能用 React 吗: 可以——开 React 集成。只在你 opt-in 的”岛”上加载 React,其他部分仍然零 JS。
  • 它和 Hugo / Eleventy 比怎么样: Astro 更灵活,想在任意位置加 JS 组件都行;Hugo 处理超大站点构建更快;Eleventy 最极简。按生态匹配度选。
  • 支持 Markdown / MDX 吗: 原生支持。content collection 在 Markdown / MDX 之上提供类型化 front matter。

相关阅读

标签: #独立开发 #Astro #MDX #对比 #入门