
Astro 5 入門教學:打造極速靜態網站
Astro 是一個現代化的靜態網站生成器,在 2024 年初發布的 Astro 5 版本中,帶來了許多令人興奮的新功能和改進。本文將帶您深入了解 Astro 5 的核心特性,並指導您如何開始使用這個強大的框架。
為什麼選擇 Astro?
Astro 的最大特色在於其「零 JavaScript 預設」的設計理念。與其他現代前端框架不同,Astro 在構建時會將所有 JavaScript 轉換為靜態 HTML,這意味著:
- 極致的載入速度
- 優異的 SEO 表現
- 更低的伺服器負載
- 更好的使用者體驗
快速開始
要開始使用 Astro 5,您只需要執行以下命令:
npm create astro@latest
這個命令會引導您完成專案的初始化過程,包括:
- 選擇專案名稱
- 選擇模板
- 安裝必要的依賴
核心概念
1. 內容集合(Content Collections)
Astro 5 的內容集合功能讓您能夠以類型安全的方式管理內容:
// src/content/config.ts
import { defineCollection, z } from 'astro:content';
const blog = defineCollection({
schema: z.object({
title: z.string(),
description: z.string(),
pubDate: z.date(),
heroImage: z.string().optional()
})
});
export const collections = { blog };
2. 島嶼架構(Islands Architecture)
Astro 的島嶼架構允許您在靜態 HTML 中嵌入互動式組件:
---
import Counter from '../components/Counter.jsx';
---
<Counter client:load />
3. 整合功能
Astro 5 提供了豐富的整合選項:
- MDX 支援:用於撰寫豐富的內容
- RSS 訂閱:自動生成訂閱源
- Sitemap:自動生成網站地圖
- 圖片優化:自動優化圖片資源
實作範例
以下是一個簡單的部落格文章列表組件:
---
import { getCollection } from 'astro:content';
const posts = await getCollection('blog');
---
<ul>
{posts.map(post => (
<li>
<a href={`/${post.slug}/`}>
<h2>{post.data.title}</h2>
<p>{post.data.description}</p>
</a>
</li>
))}
</ul>
效能優化
Astro 5 在效能方面有顯著的改進:
- 更快的構建速度:比前代版本快 2-3 倍
- 更小的打包體積:通過智能的程式碼分割
- 更好的開發體驗:更快的熱重載
- 增強的圖片優化:支援更多圖片格式和優化選項
部署建議
Astro 網站可以部署到任何靜態網站託管服務:
- Vercel
- Netlify
- GitHub Pages
- Cloudflare Pages
部署命令非常簡單:
npm run build
結語
Astro 5 是一個功能強大且易於使用的現代網站框架,特別適合需要優異效能和 SEO 的專案。無論您是建立個人部落格、企業網站還是電子商務平台,Astro 都能提供出色的解決方案。
開始使用 Astro 5 吧,體驗極速網站的魅力!