React Compiler 的吸引力很直觀:如果編譯器能自動完成一部分 memoization,我們就能少寫一些 useMemo、useCallback 和 memo。但真正值得討論的不是「能少寫多少程式碼」,而是它會如何改變團隊理解效能問題的方式。
它試圖解決什麼?
React 的重新渲染模型簡單,但大型介面很容易出現不必要的工作。過去我們通常在觀察到問題後,手動加入 memoization:
const visibleItems = useMemo(
() => filterItems(items, query),
[items, query],
)Compiler 的方向,是在建置階段分析元件與資料依賴,替符合規則的程式碼加入最佳化。
編譯器不是讓效能思考消失,而是把一部分重複、容易出錯的工作移到工具層。
團隊導入前的三個問題
- 現有程式碼是否遵守 React 的純函式與 Hooks 規則?
- 團隊有沒有真實的效能瓶頸,還是只是因為新技術而導入?
- 遇到編譯器跳過最佳化時,工程師是否知道怎麼分析原因?
我的看法
我會先從非核心頁面或新功能開始,保留效能量測,並觀察它是否真的降低維護成本。工具可以幫忙最佳化,但團隊仍然需要理解渲染、狀態與資料流。