你現在在哪裡,這份講義要帶你去哪裡

用了三個月的 React 與 TypeScript 之後,多數人會停在一個共同的位置: 、、、 都會用, 照著公司現有的範例可以把需求做完,但心裡其實有一連串沒有答案的問題——

  • 為什麼這個狀態放在這一層,而不是放在用到它的那個元件裡?

  • 為什麼這裡要包 ,隔壁看起來一樣的函式卻沒包?

  • 為什麼資深同事看到 裡 會皺眉頭?

  • 這個泛型 到底在參數化什麼?拿掉會怎樣?

這些問題的共同點是:它們都不是「語法問題」,而是「設計問題」。 語法查文件三分鐘就有答案;設計的理由卻很少被寫下來, 因為它藏在 React 與 TypeScript 本身的設計取捨裡。 這份講義的目標,就是把這些取捨攤開來講清楚—— 讓你之後看公司的程式碼時,能還原出「當初為什麼這樣寫」的推理過程。

內容地圖

全書分成四個部分,順序刻意安排成「先建立模型,再談實踐」:

部分 章節 回答的核心問題
React 執行模型 第 1 章 心智模型 React 為什麼是「宣告式」?UI = f(state) 是什麼意思?
第 2 章 資料流向 資料怎麼流動?狀態該放在哪裡?
第 3 章 重新渲染 渲染何時發生? 系列工具在解決什麼?
第 4 章 Hooks Hooks 為什麼存在? 的正確心智模型是什麼?
設計實踐 第 5 章 元件設計 怎麼設計 props?何時拆元件?什麼是好的元件 API?
TypeScript 第 6 章 型別系統 型別、泛型、interface 背後的模型是什麼?
第 7 章 TS × React 型別如何落地到元件、hooks 與 API 層?
實戰 第 8 章 浮動視窗 用 portal、全域事件、焦點與拖曳,從零打造一個完整的互動元件。
第 9 章 綜合實戰 把全部觀念組裝成一個完整功能,並學會閱讀既有程式碼。

建議的使用方式

每章三步驟。每一章都建議走完這個循環:

  1. 讀懂主張:每章都圍繞少數幾個核心主張(用「核心觀念」框標出),先確定你能用自己的話複述。

  2. 跟著程式碼推理:範例刻意寫成「公司程式碼會出現的樣子」,讀的時候不要只看結果,要能說出「換一種寫法會發生什麼事」。

  3. 回到公司的程式碼找對應:這是最重要的一步。每章的「自我檢測」之後,打開你正在維護的專案,找出一段用得上本章觀念的程式碼,試著解釋它的設計(或指出它的問題)。

建議進度。一週一章、九週完成是舒服的節奏; 第 3、4、6 章份量較重,必要時可以各拆成兩週。 如果你想快速補齊某個主題,各章也可以獨立閱讀, 但第 1 章的心智模型是全書的地基,建議無論如何先讀。

動手環境。準備三樣工具: 一個可以隨手實驗的專案()、 瀏覽器的 React DevTools 擴充功能(第 3 章會用到 Profiler)、 以及 TypeScript Playground(https://www.typescriptlang.org/play,第 6 章的型別實驗都可以在這裡做)。

版式說明

內文會穿插四種資訊框,各有明確的用途:

資訊框 用途
核心觀念(藍) 本章的關鍵主張,值得反覆咀嚼、能用自己的話複述的程度。
常見誤解(紅) 實務上流傳很廣、但不正確或不精確的說法,以及正確的版本。
實務建議(綠) 可以直接帶回工作中的具體做法與判斷準則。
深入原理(紫) 實作層面的補充,跳過不影響主線,但讀懂會讓你更有把握。

術語約定

為了閱讀順暢,全書採以下用語:render 譯為「渲染」、re-render 為「重新渲染」、 component 為「元件」、state 為「狀態」; props、hook、context、effect 等已成慣用語的名詞保留英文。 程式碼註解使用中文,變數命名維持英文,與多數公司的實際情況一致。