Astro - 基礎入門0. 課程簡介 1 ~ 6

更新 發佈閱讀 11 分鐘

第一階段:環境初始化與核心觀念

在開始前,必須理解 Astro 的靈魂:
MPA (Multi-Page Application) 與 Islands Architecture (孤島架構)。
Architecture[ˈɑrkəˌtɛktʃɚ]

1_建立專案

打開終端機,執行以下指令:
npm create astro@latest -- --template minimal
  • 選擇 Yes 安裝依賴。
  • 選擇 Yes 使用 TypeScript(強烈建議,這會讓你的開發體驗更紮實)。
  • 進入資料夾後啟動開發伺服器:npm run dev

2_目錄結構與 .astro 檔案

Astro 檔案就像是「增強版的 HTML」。

  • Code Fence (---):頂部兩條線之間寫 JavaScript/TypeScript,這部分只在構建時或服務器端執行,不會傳送到瀏覽器。
  • Component Template:下方寫 HTML,可以使用變數。
  • Styles
    • 1. 組件內局部樣式 (Scoped Styles) — 最推薦: 這是 Astro 的預設行為。寫在 <style> 標籤內的 CSS 只會作用於該組件,不會影響到頁面上的其他元素。通常放在檔案的最底部。
    • 2. 全域樣式 (Global Styles)
      如果你希望在該組件中撰寫會影響到全站(或子組件)的樣式,可以使用 is:global 指令:
      <style is:global>
      /* 這會影響到整個頁面的 body,而不僅限於此組件 */
      body {
      background-color: #f0f0f0;
      }
      ``` /_ 也可以用來強制修改子組件的樣式 _/ .external-component .item {
      padding: 10px;
      }
      </style>
  • 3. 動態樣式 (CSS Variables)
    如果你需要根據 Code Fence 裡的變數來決定樣式,可以使用 define:vars
---
const { bgColor = "red" } = Astro.props;
---
<div class="box">動態背景顏色</div>
<style define:vars={{ bgColor }}>
.box {
background-color: var(--bgColor); /* 使用來自 Code Fence 的變數 */
padding: 20px;
}
</style>
  • 4. Sass / SCSS
    Astro 內建支援 Sass / SCSS。如果你想用 SCSS,只需安裝套件(npm install -D sass)後,將標籤改為 <style lang="scss"> 即可直接使用!
  • Astro 完整內容
    ---
    // 1. Code Fence (元件邏輯):這裡寫伺服器端邏輯
    const name = "Astro 學習者";
    const items = ["性能", "彈性", "簡潔"];
    ---

    <!-- 2. Component Template -->
    <h1>你好,{name}!</h1>
    <ul>
    {items.map(item => <li>{item}</li>)}
    </ul>

    <!-- 3. Scoped Styles -->
    <style>
    .title {
    color: purple; /* 這裡的樣式會被自動封裝 (Scoped) */
    font-size: 2rem;
    }
    p {
    color: gray;
    }
    </style>



第二階段:路由與佈局 (Layouts)

這部分是建立網站骨架的基礎。

1_基於檔案系統的路由

src/pages/index.astroyour-site.com/
src/pages/index.astroyour-site.com/about
src/pages/posts/[slug].astro ➜ 動態路由(如文章頁面)

2_建立共通佈局 (Layouts)

src/layouts/MainLayout.astro 建立一個外殼,使用 <slot /> 來插入子頁面內容:

---
const { title } = Astro.props;
---
<html lang="zh-TW">
  <head><title>{title}</title></head>
  <body>
    <nav>導覽列</nav>
    <main>
      <slot /> </main>
  </body>
</html>



第三階段:核心進階 - Content Layer API (Astro 5 重點)

Astro 5 最強大的功能就是處理內容。不要再手動讀取檔案了,請學習使用 Content Collections

  1. src/content/config.ts 定義資料結構(Schema)。
  2. 將 Markdown 或 JSON 放在 src/content/blog/
  3. 使用 getCollection() 獲取資料。

這部分是 Astro 作為內容框架的靈魂,能自動幫你做型別檢查 (Type Safety)。



第四階段:孤島架構 (Islands) 與組件整合

這是 Astro 性能強大的原因:預設為 0 JavaScript
如果你需要互動功能(如計數器、輪播圖),你可以整合 React/Vue/Svelte。

1_加入框架

npx astro add react

2_使用客戶端指令 (Client Directives)

這是最紮實的概念:

  • <Component />:在伺服器渲染 HTML,無 JS
  • <Component client:load />:頁面載入時立即執行 JS。
  • <Component client:visible />:滾動到該元件時才執行 JS(極力推薦,優化性能神招)。



第五階段:渲染模式與資料獲取

Astro 5 支援多種模式:

  • SSG (Static Site Generation):預設模式,快到極致。
  • SSR (Server Side Rendering):需要即時資料(如用戶登入)時使用。
  • Server Islands:這是 v5 的新功能!允許你在靜態頁面中嵌入動態的伺服器組件。



📚 額外筆記

✅ SSG - Static Site Generation(靜態網站生成)

它是一種網頁生成方式,主要概念是 在建置階段(build time)就把網頁生成成靜態 HTML 文件,而不是每次使用者請求時才動態生成。

1️⃣ 工作流程

  1. 你有一些資料(例如 Markdown、API 或資料庫內容)。
  2. 在開發或部署時,SSG 工具(像是 Next.js、Nuxt.js、Astro、Gatsby 等)會把這些資料生成 HTML、CSS、JS。
  3. 使用者訪問網站時,直接拿到 已生成好的靜態頁面,不需要再向伺服器請求資料生成頁面。

2️⃣ 特點

  • 快: 因為都是靜態頁面,瀏覽器直接載入 HTML。
  • SEO 友好: 搜尋引擎可以直接讀到完整 HTML。
  • 安全: 沒有伺服器端程式碼執行的風險。
  • 可搭配 CDN: 靜態頁面可以直接放在 CDN,加速全球分發。

3️⃣ 常見工具

  • Next.jsgetStaticProps / getStaticPaths
  • Nuxt.jsnuxt generate`
  • Astro → 預設就是 SSG
  • Gatsby → 專注於 SSG 的 React 框架

✅ SSR - Server-Side Rendering(伺服器端渲染)

是一種「網頁在伺服器先產生 HTML,再送到瀏覽器」的渲染方式。

SSR 在做什麼?

傳統 CSR(Client-Side Rendering)
  1. 瀏覽器先拿到一個幾乎是空的 HTML
  2. 再下載 JS
  3. JS 在瀏覽器執行
  4. JS 動態產生畫面

❌ 初始畫面慢
❌ SEO 不友善(搜尋引擎拿不到內容)

SSR(Server-Side Rendering)
  1. 使用者請求頁面
  2. 伺服器直接產生完整 HTML
  3. 瀏覽器一收到就顯示內容
  4. JS 再接手(Hydration)

✅ 首屏快
✅ SEO 友善
✅ 分享連結可直接看到內容

SSR 的流程圖

瀏覽器 → 請求頁面
        ↓
      伺服器
        ↓
   產生完整 HTML
        ↓
瀏覽器直接顯示畫面
        ↓
 JS Hydration 接手互動

常見使用 SSR 的框架

  • Astro (預設 SSG,也可 SSR)
  • Next.js
  • Nuxt
  • Remix
  • SvelteKit

Astro 裡的 SSR

Astro 預設是 SSG,之後章節可能會看到:

  • output: 'server'
  • adapter-node
  • adapter-vercel
  • Astro.server
  • defineAction()

👉 這些都代表你進入 SSR 模式

SSR 的優缺點

✅ 優點

  • SEO 超友善
  • 首頁載入快
  • 適合部落格、電商、內容型網站

❌ 缺點

  • 伺服器負擔較大
  • 架構較複雜
  • 需要部署在支援 Node / Serverless 的環境(如 Vercel)
留言
avatar-img
李昀瑾的沙龍
0會員
37內容數
李昀瑾的沙龍的其他內容
2026/01/06
✅ 是的,如果你想將網站部署到網路上分享,一定要註冊帳號。 以下是幾個為什麼建議現在就去註冊的原因: 1. 為了拿到「網址」...
2026/01/06
✅ 是的,如果你想將網站部署到網路上分享,一定要註冊帳號。 以下是幾個為什麼建議現在就去註冊的原因: 1. 為了拿到「網址」...
2026/01/05
Vercel 的 Hobby(免費)方案 非常大方,即使你使用了 server 模式(SSR),只要你的網站不是突然爆紅、流量大到驚人,基本上是不用花到錢的。 以下是針對「學習者」關心的幾個免費額度重點 ...
2026/01/05
Vercel 的 Hobby(免費)方案 非常大方,即使你使用了 server 模式(SSR),只要你的網站不是突然爆紅、流量大到驚人,基本上是不用花到錢的。 以下是針對「學習者」關心的幾個免費額度重點 ...
2026/01/04
astro 專案安裝 vercel,配置檔多出 output 設定 ? output 設計分為 static、server、hybrid,哪種比較好 ?
2026/01/04
astro 專案安裝 vercel,配置檔多出 output 設定 ? output 設計分為 static、server、hybrid,哪種比較好 ?
看更多
你可能也想看
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
(B)愈來愈多新創團隊或公司 都在提供 企業應用AI 的服務 AI新創公司該如何做 才能搶佔龍頭地位 和市場先機 而且讓自家公司市的市占率維持在領先地位 然後 AI公司 該如何協助企業客戶的基金會 幫助到真正該被幫助的善良弱勢 幸福課程 幸福教練黃老師 / 潮資訊媒
Thumbnail
(B)愈來愈多新創團隊或公司 都在提供 企業應用AI 的服務 AI新創公司該如何做 才能搶佔龍頭地位 和市場先機 而且讓自家公司市的市占率維持在領先地位 然後 AI公司 該如何協助企業客戶的基金會 幫助到真正該被幫助的善良弱勢 幸福課程 幸福教練黃老師 / 潮資訊媒
Thumbnail
原文 EarnApp Is Upgrading: Introducing Pay‑per‑Time2025-08-20Rollout Begins: August 20, 2025We’re moving from the Pay‑per‑GB model to a new Pay‑per‑T
Thumbnail
原文 EarnApp Is Upgrading: Introducing Pay‑per‑Time2025-08-20Rollout Begins: August 20, 2025We’re moving from the Pay‑per‑GB model to a new Pay‑per‑T
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
首先可以使用編輯器 Visual Studio Code (VS Code) 來練習 前置準備 打開VS Code,建立一個資料夾 新增兩個檔案index.html 和 style.css 於project 資料夾內 範例為html基本模板,並關聯css檔 接著就可以開始寫你要的css
Thumbnail
首先可以使用編輯器 Visual Studio Code (VS Code) 來練習 前置準備 打開VS Code,建立一個資料夾 新增兩個檔案index.html 和 style.css 於project 資料夾內 範例為html基本模板,並關聯css檔 接著就可以開始寫你要的css
Thumbnail
我是美女學生模特兒星探 經紀人 培訓老師 演藝媒合經紀 寫真攝影指導 企劃 歡迎美女學生找我應徵 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 探索妳的星途,與我一同啟程! 🌟 妳好!我是 幸福教練黃老師, 身兼美女學生模特兒、星探、經紀人、 培訓老師、演藝媒
Thumbnail
我是美女學生模特兒星探 經紀人 培訓老師 演藝媒合經紀 寫真攝影指導 企劃 歡迎美女學生找我應徵 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 探索妳的星途,與我一同啟程! 🌟 妳好!我是 幸福教練黃老師, 身兼美女學生模特兒、星探、經紀人、 培訓老師、演藝媒
Thumbnail
C一樣都是提供 數據服務 雲端服務 AI服務 資安服務 的公司, 該如何提升自家的競爭力, 使優質的客戶會主動找我們服務? 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 要提升公司 在提供數據服務、雲端服務、 AI服務和資安服務方面的競爭力, 妳可以考慮以下策略:
Thumbnail
C一樣都是提供 數據服務 雲端服務 AI服務 資安服務 的公司, 該如何提升自家的競爭力, 使優質的客戶會主動找我們服務? 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 要提升公司 在提供數據服務、雲端服務、 AI服務和資安服務方面的競爭力, 妳可以考慮以下策略:
Thumbnail
手機挖礦提供簡單易用的加密貨幣獲取方式,本文介紹Pi Network、Athene Network、CPEN、Bondex、Bee Network和Star Network等六大手機挖礦項目,比較其特色、發展現況及未來潛力,並提醒用戶需謹慎評估風險。
Thumbnail
手機挖礦提供簡單易用的加密貨幣獲取方式,本文介紹Pi Network、Athene Network、CPEN、Bondex、Bee Network和Star Network等六大手機挖礦項目,比較其特色、發展現況及未來潛力,並提醒用戶需謹慎評估風險。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News