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 在效能方面有顯著的改進:

  1. 更快的構建速度:比前代版本快 2-3 倍
  2. 更小的打包體積:通過智能的程式碼分割
  3. 更好的開發體驗:更快的熱重載
  4. 增強的圖片優化:支援更多圖片格式和優化選項

部署建議

Astro 網站可以部署到任何靜態網站託管服務:

  • Vercel
  • Netlify
  • GitHub Pages
  • Cloudflare Pages

部署命令非常簡單:

npm run build

結語

Astro 5 是一個功能強大且易於使用的現代網站框架,特別適合需要優異效能和 SEO 的專案。無論您是建立個人部落格、企業網站還是電子商務平台,Astro 都能提供出色的解決方案。

開始使用 Astro 5 吧,體驗極速網站的魅力!