React 面試真正會問的問題

作者 Aaron Cao · 更新於

React 面試真正會問的問題
首先會考 Hooks 相關問題:useState、useEffect 相依性陣列,以及過期閉包。接著是渲染相關:協調機制、為什麼列表需要 key,以及如何用 memo、useMemo 和 useCallback 控制重新渲染。大多數流程還會加一道現場程式題,常見的是「取得資料並過濾清單」或「帶防抖的搜尋框」。

首先會考 Hooks 相關問題:useState、useEffect 相依性陣列,以及過期閉包。接著是渲染相關:協調機制、為什麼列表需要 key,以及如何用 memo、useMemo 和 useCallback 控制重新渲染。大多數流程還會加一道現場程式題,常見的是「取得資料並過濾清單」或「帶防抖的搜尋框」。

哪些 React 概念最常被考到?

React 的知識面非常廣,很多題庫把每個角落都當作同等重要,但事實並非如此。這一節聚焦真正決定大多數面試結果的概念,方便你按照真實的考察分布來練習。以下四類問題最為集中:

  • Hooks 機制:hooks 的使用規則、useEffect 相依性陣列裡該放什麼、清理函式(cleanup function),以及 effect 或回呼讀到舊 state 值的過期閉包問題。
  • 渲染:什麼會觸發重新渲染、協調(reconciliation)如何比對樹狀結構,以及為什麼列表需要穩定的 key。
  • 狀態設計:狀態提升、受控與非受控輸入的差異,以及什麼時候該用 context、什麼時候該用外部狀態庫。
  • 效能:React.memo、useMemo、useCallback,以及它們何時是雜訊、何時真正有用。

面試官會追問每個概念背後的原因。只背出「key 必須是唯一的」拿不到分;能說清楚 React 在列表重新排序時如何使用 key 才是關鍵。

現場程式練習會考什麼?

大多數 React 面試環節都包含現場搭建一個小型元件。以下這些練習題在不同公司之間高度一致:

  • 從 API 取得清單資料、渲染出來,並加上文字過濾功能。
  • 為搜尋輸入框加上防抖,並取消過期的請求。
  • 搭建一個帶驗證的表單,使用受控輸入。
  • 寫一個計數器或計時器,並正確清理它的 effect。
  • 從重複的邏輯中抽取出一個自訂 hook。

舉例來說,應徵中階前端職缺的工程師可能需要搭建「取得資料並過濾」的清單,接著會被追問載入狀態、錯誤狀態,以及元件在請求進行中被卸載會發生什麼事。真正決定勝負的是這些延伸問題,基礎練習只是入場門檻。

在限時且伴隨追問的條件下反覆練習,才能讓這些變成直覺反應;模擬面試頁面介紹了如何進行有面試官追問的限時訓練。

資深職缺的 React 問題長什麼樣?

資深職缺的面試會從機制類問題轉向判斷力類問題。你會被問到狀態架構:哪些資料放在元件 state 裡、哪些該放進 store、伺服端狀態和 UI 狀態有什麼差異,以及快取該放在哪一層。渲染效能問題會更具體:如何定位一次卡頓互動的根源、該用記憶化(memoization)還是重構,以及如何解讀 profiler 的火焰圖。

如果團隊在 React 之上使用了某個框架,就會涉及伺服端渲染和 hydration:什麼是 hydration、為什麼會出現不匹配,以及把工作移到伺服端能帶來什麼好處。測試相關問題更關注策略——元件層級測試和端對端測試分別該測什麼,而不是某個測試庫的 API 細節。

關於面試形式,以及前端面試流程通常如何安排這些環節,可參見面試類型彙總

該怎麼練習,才能在真實面試中用得上?

看教學只能建立「眼熟」,建立不了「能回想」,而面試考察的正是被人看著時的回想能力。真正有效的做法是按面試的真實形式反覆練習:從空白檔案開始搭建這些標準練習題,邊寫邊講解思路,並在被打斷提問時不丟失思路。相鄰技術棧的題庫,包括 React 面試仍會從中開場的純 JavaScript 基礎題,都收錄在題庫彙總頁面。

說句實話:React 面試幾乎總是在共享編輯器裡進行,或者你的螢幕本身就是可見的,螢幕上的任何內容面試官都看得到。AI 助手應該用在準備和練習階段,而不是共享螢幕的面試現場本身。如果是合規的現場使用情境,SubcueAI 的懸浮視窗只在你本機運行,不會有機器人加入通話;練習情境的設定方式請見教學頁面。

常見問題

還需要了解 class 元件嗎?

至少要能讀懂。仍有大量正式環境的程式碼在使用 class,所以最多會被問到生命週期方法,以及它們如何對應到 hooks。涉及新程式碼的問題幾乎都基於函式元件。

Hooks 相關問題到底會問多深?

比函式簽名深得多。面試官會問相依性陣列為什麼存在、什麼是過期閉包以及如何修復、清理函式什麼時候執行,以及為什麼 state 更新會被批次處理。一個親手除錯過過期閉包的真實故事,比背下每個內建 hook 都更有說服力。

React 面試會涉及 Next.js 問題嗎?

如果團隊使用 Next.js,就會涉及:路由、伺服端資料獲取,以及 hydration 基礎知識。使用純 React 的團隊很少要求這些,而且無論如何,核心 React 問題才是決定面試結果的關鍵。

面試中還會問 Redux 嗎?

更多是作為狀態管理的討論,而不是 API 問答。你需要比較元件 state、context 和外部狀態庫,並說明各自適用的場景。能講清楚取捨,比記住某個具體庫更重要。

相關問題

← 更多關於 依職位與主題分類的面試問題