忒卷

为什么我选择 Astro 作为博客框架

· 5 分钟阅读 · -

在搭建这个博客之前,我认真对比了市面上主流的静态站点生成器。最终选择了 Astro,这个决定背后有一些值得分享的思考。

需求分析

一个博客站点真正需要什么?我列出了核心需求:

  1. 构建速度 — 写完文章后能快速预览
  2. 加载性能 — 访客打开页面的速度
  3. 内容优先 — Markdown/MDX 的支持质量
  4. 部署简单 — 一键部署到 CDN
  5. 可扩展性 — 未来可能加入互动功能

主流方案对比

Next.js

Next.js 是一个优秀的全栈框架,但对博客来说有些重了:

  • 默认发送大量 JavaScript
  • 构建时间较长
  • App Router 的学习曲线陡峭

如果你的博客需要动态功能(评论系统、用户认证等),Next.js 是好选择。但纯内容站点用它,属于杀鸡用牛刀。

Hugo

Hugo 构建速度极快,用 Go 编写:

  • 优势:构建速度快到几乎无感知
  • 劣势:模板语法不够直观,生态系统较小

Hugo 适合内容量极大的站点(上千篇文章),但个人博客的构建时间差异可以忽略。

Astro

Astro 的设计哲学和我的需求完美契合:

// Astro 的核心特性:零 JS 默认输出
// 只有当你需要交互时,才加载 JavaScript

关键优势:

  • Islands Architecture:页面默认是纯 HTML,交互组件按需加载
  • Content Collections:类型安全的内容管理
  • 多框架支持:可以在 Astro 中使用 React/Vue/Svelte 组件
  • 优秀的 DX:热更新快,错误提示清晰

实际体验

迁移到 Astro 后,我注意到了一些切实的改进:

指标Next.jsAstro
首次构建~15s~3s
首页 JS 大小~180KB~5KB
Lighthouse 评分85-9598-100
开发热更新~1s~200ms

结论

技术选型没有标准答案,关键看你的具体需求。对于内容驱动的站点,Astro 在性能和开发体验之间找到了很好的平衡点。

如果你正在考虑搭建博客,建议先明确自己的核心需求,再做选择。不要因为某个框架流行就选择它,适合的才是最好的。

评论

加载评论中...