Astro - 基礎入門1.基礎架構與 Layouts

更新 發佈閱讀 6 分鐘

第一課:Astro 的靈魂 —— 組件與佈局 (Layouts)

在 Astro 中,網頁是由一個個 .astro 檔案組成的。這類檔案最大的特色是:預設不發送任何 JavaScript 到瀏覽器,所以速度極快。

0_建立Astro專案:

打開終端機,執行以下指令:

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

1_核心概念:Code Fence (---)

每個 .astro 檔案頂部都有兩條線 ---,這叫 Code Fence。
* Fence[fɛns]: 圍欄、柵欄

  • 裡面寫什麼: TypeScript/JavaScript、匯入組件、從 API 抓取資料。
  • 執行時機: 僅在編譯時(Build time)或伺服器端執行。

2_手把手實作:建立第一個佈局

請在你的專案中建立 /src/layouts/BaseLayout.astro

---
// 這裡接收來自頁面的參數
const { pageTitle } = Astro.props;
---

<html lang="zh-TW">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <meta name="viewport" content="width=device-width" />
    <title>{pageTitle}</title>
    <style>
      body { font-family: sans-serif; line-height: 1.6; max-width: 800px; margin: 0 auto; padding: 2rem; }
      nav { border-bottom: 1px solid #ccc; padding-bottom: 1rem; margin-bottom: 2rem; }
      a { margin-right: 1rem; text-decoration: none; color: #0070f3; }
    </style>
  </head>

  <body>
    <nav>
      <a href="/">首頁</a>
      <a href="/about/">關於我</a>
    </nav>

    <h1>{pageTitle}</h1>

    <slot />

    <footer>
      <hr />
      <p>© 2024 我的 Astro 學習筆記</p>
    </footer>
  </body>
</html>

3_手把手實作:應用佈局到頁面

修改 /src/pages/index.astro

---
import BaseLayout from '../layouts/BaseLayout.astro';
const pageTitle = "首頁";
const skills = ["Astro", "TypeScript", "React"];
---

<BaseLayout pageTitle={pageTitle}>
  <h2>歡迎來到我的 Astro 課程</h2>
  <p>這是我的第一個頁面,正在練習如何使用 Layout。</p>
  <ul>
    {skills.map((skill) => <li style="color: navy;">{skill}</li>)}
  </ul>
</BaseLayout>

📝 第一課練習題

任務目標: 建立一個「關於我 (About)」頁面,並練習資料傳遞。

  1. src/pages/ 下建立一個新檔案 about.astro
  2. 匯入並使用剛才寫好的 BaseLayout
  3. --- 區塊內定義一個對象 identity,包含 firstNamehobbies(數組)。
  4. 在頁面上使用 {identity.firstName} 顯示名字。
  5. 使用 {identity.hobbies.map()} 把你的愛好列印成一個列表。
  6. 挑戰題: 試著在 BaseLayout 裡增加一個變數,讓每個頁面的背景顏色可以透過 Props 從 index.astroabout.astro 傳進去(例如:index 是白色,about 是淺灰色)。

第一課練習題實作放在下一篇 ( 我也是第一次學習,自己試作,不一定是對的喔👍 )

留言
avatar-img
李昀瑾的沙龍
0會員
37內容數
李昀瑾的沙龍的其他內容
2026/01/07
Astro - 基礎入門 1 ~ 6 第一階段:環境初始化與核心觀念 第二階段:路由與佈局 (Layouts) 第三階段:核心進階 - Content Layer API (Astro 5 重點) 第四階段:孤島架構 (Islands) 與組件整合 第五階段:渲染模式與資料獲取 第六階段:這篇還沒有
2026/01/07
Astro - 基礎入門 1 ~ 6 第一階段:環境初始化與核心觀念 第二階段:路由與佈局 (Layouts) 第三階段:核心進階 - Content Layer API (Astro 5 重點) 第四階段:孤島架構 (Islands) 與組件整合 第五階段:渲染模式與資料獲取 第六階段:這篇還沒有
2026/01/06
✅ 是的,如果你想將網站部署到網路上分享,一定要註冊帳號。 以下是幾個為什麼建議現在就去註冊的原因: 1. 為了拿到「網址」...
2026/01/06
✅ 是的,如果你想將網站部署到網路上分享,一定要註冊帳號。 以下是幾個為什麼建議現在就去註冊的原因: 1. 為了拿到「網址」...
2026/01/05
Vercel 的 Hobby(免費)方案 非常大方,即使你使用了 server 模式(SSR),只要你的網站不是突然爆紅、流量大到驚人,基本上是不用花到錢的。 以下是針對「學習者」關心的幾個免費額度重點 ...
2026/01/05
Vercel 的 Hobby(免費)方案 非常大方,即使你使用了 server 模式(SSR),只要你的網站不是突然爆紅、流量大到驚人,基本上是不用花到錢的。 以下是針對「學習者」關心的幾個免費額度重點 ...
看更多
你可能也想看
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
網站開發專案成功的關鍵在於與客戶的有效溝通。本文分享一個成功案例,說明如何透過明確掌握專案需求、主動提供技術方案、定期回報進度、完善技術協助及建立良好客戶關係,順利完成一個中文影片學習分享網站的建置,並獲得客戶高度滿意與後續合作機會。
Thumbnail
網站開發專案成功的關鍵在於與客戶的有效溝通。本文分享一個成功案例,說明如何透過明確掌握專案需求、主動提供技術方案、定期回報進度、完善技術協助及建立良好客戶關係,順利完成一個中文影片學習分享網站的建置,並獲得客戶高度滿意與後續合作機會。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
Nuxt.js 是以 Vue 為基底所建構的框架,透過 Nuxt.js,我們能夠更輕鬆地開發靜態頁面 (Static Site)、操作體驗良好的單頁式網站 (SPA)、甚至是顧及 SEO 的伺服器端渲染 (SSR) 網站。
Thumbnail
Nuxt.js 是以 Vue 為基底所建構的框架,透過 Nuxt.js,我們能夠更輕鬆地開發靜態頁面 (Static Site)、操作體驗良好的單頁式網站 (SPA)、甚至是顧及 SEO 的伺服器端渲染 (SSR) 網站。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場從「網路連結 → 線下見面」的活動,我一開始其實有些猶豫,畢竟地點對我來說不近,加上平常在社群裡其實不太主動互動。 但因為主辦人西打誠意滿滿地邀請,甚至還提出補貼車資,最後我決定自費參加。現在回頭看,真的很值得! 場地很有感,氛圍超溫暖 一踏進場地就被暖黃的燈光包圍,小閣樓超舒適,還
Thumbnail
這是一場從「網路連結 → 線下見面」的活動,我一開始其實有些猶豫,畢竟地點對我來說不近,加上平常在社群裡其實不太主動互動。 但因為主辦人西打誠意滿滿地邀請,甚至還提出補貼車資,最後我決定自費參加。現在回頭看,真的很值得! 場地很有感,氛圍超溫暖 一踏進場地就被暖黃的燈光包圍,小閣樓超舒適,還
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News