🚀 Astro 是什么?
Astro 是一个现代化的静态站点生成器(SSG),专为内容驱动的网站而设计。它的核心理念是零 JavaScript 运行时,这意味着默认情况下不会向浏览器发送任何 JavaScript 代码。
核心特性
1. 零 JavaScript 运行时
Astro 会在构建时将组件渲染为纯 HTML 和 CSS,不添加任何 JavaScript 运行时开销。
---
// 这段代码只在构建时运行
const title = 'Hello World';
---
<h1>{title}</h1>
<!-- 输出为纯 HTML -->
2. 岛屿架构(Islands Architecture)
Astro 采用岛屿架构,只在需要交互的地方加载 JavaScript 组件:
---
import InteractiveComponent from '../components/InteractiveComponent.jsx';
---
<!-- 静态内容 -->
<div>这是静态内容</div>
<!-- 交互式组件,只在客户端加载 -->
<InteractiveComponent client:load />
3. 多框架支持
你可以在同一个项目中混合使用多种框架:
---
import ReactComponent from '../components/ReactComponent.jsx';
import VueComponent from '../components/VueComponent.vue';
import SvelteComponent from '../components/SvelteComponent.svelte';
---
<ReactComponent />
<VueComponent />
<SvelteComponent />
📦 快速开始
安装 Astro
# 使用 npm
npm create astro@latest
# 使用 pnpm
pnpm create astro
# 使用 yarn
yarn create astro
项目结构
my-astro-blog/
├── src/
│ ├── components/ # 可复用组件
│ ├── layouts/ # 布局组件
│ ├── pages/ # 页面路由
│ └── content/ # Markdown 内容
├── public/ # 静态资源
├── astro.config.mjs # Astro 配置
└── package.json
创建第一个页面
创建 src/pages/index.astro:
---
import Layout from '../layouts/Layout.astro';
---
<Layout title="我的博客">
<h1>欢迎来到我的博客!</h1>
<p>这是使用 Astro 构建的静态网站。</p>
</Layout>
🎨 Markdown 支持
Astro 原生支持 Markdown 和 MDX,可以轻松地创建博客文章:
---
title: '我的第一篇文章'
pubDate: 2026-04-15
---
# 标题
这是文章内容...
🔧 常用指令
# 开发服务器
npm run dev
# 构建生产版本
npm run build
# 预览构建结果
npm run preview
📚 学习资源
💡 小结
Astro 是一个强大且灵活的框架,特别适合内容驱动的网站。它的零 JavaScript 运行时特性和岛屿架构使其在性能方面表现优异。
如果你正在寻找一个快速、轻量级的网站构建工具,Astro 绝对值得尝试!