FE Day 19 Server Components 與資料取得 執行需求:CPU 可跑 。今天是「前端開發實戰:React 與 Next.js 全套」系列的第十九篇,我們把 App Router 最重要的觀念攤開來看——Server Component 怎麼拿資料、為什麼要這樣設計、四種快取策略怎麼選、以及怎麼把真實的 HTTP 呼叫收進一個好維護的資料層。延續前兩天蓋好的 booking-fe 專案,我們會把 fetch 包進 src/lib/api.ts 、把「拿單筆預約」「拿預約清單」「拿使用者 session」三個動作變成可組合的函式,並讓 page.tsx 直接 await。整篇範例不依賴真實後端,本機用 mock 資料就能跑,串接 Web 系列的 FastAPI 只要換 base URL。 引言 前端工程師剛接觸 Next.js 的 Server Component 時,最常問的問題是:「這不就是回到 SSR 了嗎?」答案接近「對,但不只是 SSR」。SSR(Server-Side Rendering,伺服器端渲染)在 React 的脈絡裡指的是「在伺服器上把 HTML 產出來,再送到瀏覽器」。Server Component 更進一步: 元件本身在伺服器上執行,連 JavaScript bundle 都不送給瀏覽器 。這意味著兩件事——伺服器可以直接讀資料庫、打後端 API、讀環境變數、讀檔案系統;瀏覽器只收到渲染好的 HTML 與極少量的互動程式碼。 這個模型對「後端工程師」其實非常友善:你寫 React 元件的方式跟在後端寫函式差不多,可以直接 await 、可以直接拿環境變數、不需要寫 Redux 或 React Query。Next.js 在 build time 自動把 Server Component 與 Client Component 拆成兩個 bundle,伺服器 bundle 永遠不會送到瀏覽器,client bundle 也不會被伺服器執行。兩邊的邊界由 "use client" 標記決定,沒寫的就是 Server Component。 今天的目標有四個:第一,把 Server Component 的「為什麼」講清楚,包含它對 bundle size 與資料來源的影響;第二,建立...