iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Modern Web

用 Astro 打造 Content-first 前端網站:30 天從靜態內容到會員、資料庫與選型(3rd) 系列

30 天做一個 content-first 網站:從零 JavaScript 的靜態頁,做到有登入、資料庫與購物車。中間經過檔案式路由、Content Collections、Vue island、Actions 與 Drizzle + Turso。寫給已經會 Vue 或 React、還在猶豫內容站要不要換 Astro 的前端工程師。易變的 API 都查當天官方文件並標註查證基準,也附 JavaScript 傳輸量等實測數字。每天都有可跑的程式碼,放在公開 repo app-steps,一天一個 commit,Day N 對應 step-N。最後一天回答哪些專案適合 Astro,哪些不適合。

參賽天數 28 天 | 共 28 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 21

Astro 收表單,什麼時候用 Action、什麼時候自己寫 API?

收一張表單,常見做法是:前端用 fetch 送資料,後端開一支 APIroute 接資料。前端驗一次,讓使用者當場看到錯誤;後端再驗一次,防止有人繞過前端。這樣...

2026-09-03 ‧ 由 stca 分享
DAY 22

內容站要開始存資料,資料庫怎麼接才不會被平台綁死?

Day 21 那張 feedback 表單,現在收得到、驗得過,但送出後就沒了:handler 只驗證、只回傳,沒把資料留下來。這篇要把它接上資料層,讓每一筆...

2026-09-04 ‧ 由 stca 分享
DAY 23

登入狀態要放哪?Astro 的 locals 與 Vue island 怎麼分工?

登入狀態由 server 的 middleware 判斷,結果放進context.locals。同一個 request 後面的頁面或 Action 直接讀這份結...

2026-09-05 ‧ 由 stca 分享
DAY 24

想幫內容站加登入和收藏,2026 的 Astro 該把驗證交給誰?

Day 23:middleware、locals 與 island 的狀態邊界已經把完整資料流拆開:每個 request 都由 middleware 辨認使用者...

2026-09-06 ‧ 由 stca 分享
DAY 25

多頁網站想要 SPA 般的轉場,不寫一堆 JS 做得到嗎?

可以。在共用 layout 的 <head> 放一個 <ClientRouter />,Astro 就會接手站內連結,讓多頁網站用 cl...

2026-09-07 ‧ 由 stca 分享
DAY 26

要支援多語系時,路由與內容怎麼組織才不會失控?

多語系網站要先決定 URL,再開始翻內容。Astro 的 i18n config 可以定義預設語系、URLprefix 與缺頁 fallback,但它不會替你判...

2026-09-08 ‧ 由 stca 分享
DAY 27

astro.config 裡的 integrations 到底在做什麼?該裝哪些?

安裝 integration 前,先說清楚缺的是哪一種能力。Astro integration 適合加入 frameworkrenderer、內容格式或跨建置流...

2026-09-09 ‧ 由 stca 分享
DAY 28

Astro 內容站該選 Google Sheets、Keystatic 還是 Strapi?

先看內容正本與編輯流程,再選 CMS。GoogleSheets 適合小型、欄位固定的表格資料;Keystatic 適合想保留 Markdown 與 Git,又需...

2026-09-10 ‧ 由 stca 分享