1.1 为什么用 Astro
内容站的核心诉求是:文章是 Markdown,产出是静态文件,浏览器端尽量少跑 JavaScript。
与几个常见方案的对比
| 方案 | 构建产物 | 浏览器端 JS | Markdown |
|---|---|---|---|
| 纯静态生成器 | 静态 HTML | 无 | 原生支持 |
| 单页应用框架 | HTML + JS 包 | 需要 | 插件 |
| Astro | 静态 HTML | 默认无 | 原生支持 |
关键差异在第三列和第四列的交叉点:单页应用要把 Markdown 在浏览器里渲染,或者额外做一层预渲染;Astro 直接在构建期把 Markdown 变成 HTML。
默认零 JavaScript
「默认零 JS」是它最有价值的设计。组件里写的脚本默认会在构建期执行,只有显式标记的才会送到浏览器。
这带来一个直接好处:页面到达浏览器时就是最终形态。不会出现内容先空着、等 JS 执行完再填上的闪烁。
什么时候不该用它
- 强交互的应用(后台、编辑器)——那是单页应用的领域
- 需要服务端实时数据的场景
判断标准很简单:页面内容是否需要用户操作才出现。如果需要,静态生成就不合适。