2024-04-19 前端常見面試題彙總(react篇)

哎呦你可棒棒了發表於2024-04-19

基礎知識

  1. React是什麼?
    • React是一個用於構建使用者介面的JavaScript庫。
  2. React和Angular、Vue有什麼區別?
    • React專注於UI元件化,資料流動單向,需配合其他庫(如Redux)進行狀態管理;Angular是完整的前端框架,提供一站式解決方案;Vue則是輕量級框架,易於上手且效能優良。
  3. React中的元素和元件有什麼區別?
    • 元素是React中最小構建塊,不可變;元件是函式或類,接收輸入並返回React元素樹。

元件

  1. React元件有哪些型別?
    • 函式元件和類元件。
  2. 函式元件和類元件的區別是什麼?
    • 函式元件更簡潔,沒有生命週期方法;類元件支援更多特性,如狀態管理和生命週期鉤子。
  3. 什麼是無狀態元件(Functional Component)?
    • 無狀態元件是隻接收props並返回JSX的函式,不管理內部狀態。
  4. 什麼是受控元件和非受控元件?
    • 受控元件的表單資料由React元件的狀態管理;非受控元件的表單資料由DOM本身管理。

生命週期

  1. React類元件有哪些生命週期方法?
    • 掛載階段:constructor, componentWillMount, render, componentDidMount;更新階段:componentWillReceiveProps, shouldComponentUpdate, componentWillUpdate, render, componentDidUpdate;解除安裝階段:componentWillUnmount。
  2. React 16.3以後的生命週期方法有哪些變化?
    • 引入了getDerivedStateFromProps, getSnapshotBeforeUpdate和componentDidCatch,同時部分方法(如componentWillMount, componentWillReceiveProps, componentWillUpdate)被視為不安全,被新的生命週期方法替代或建議避免使用。

狀態管理

  1. React中的狀態是什麼?如何管理狀態?
    • 狀態是元件內部的私有資料,可以透過this.state在類元件中管理,或在函式元件中使用React Hooks(如useState)管理。
  2. 什麼是Redux?它如何與React結合使用?
    • Redux是一個用於管理JavaScript應用的可預測狀態容器,可與React結合使用,透過Provider和connect等方法將Redux store中的狀態對映到React元件的props中。

Hooks

  1. 什麼是React Hooks?
    • Hooks是React 16.8引入的新特性,允許你在不編寫class的情況下使用state以及其他的React特性。
  2. 常見的React Hooks有哪些?
    • useState, useEffect, useContext, useReducer, useCallback, useMemo等。
  3. useState和useContext的區別是什麼?
    • useState用於在函式元件中新增區域性狀態;useContext用於在元件樹之間共享值,類似於將變數值“放入”全域性作用域中,使得任何元件都可以讀取它,無需顯式地透過每一層元件傳遞props。

效能最佳化

  1. React中如何進行效能最佳化?
    • 使用shouldComponentUpdate或React.memo進行淺比較,避免不必要的渲染;使用React.lazy和Suspense進行程式碼分割和懶載入;利用useCallback和useMemo避免不必要的計算和渲染;最佳化列表渲染,如使用虛擬化技術。

錯誤處理

  1. React中如何進行錯誤處理?
    • 使用Error Boundaries元件來捕獲並列印JavaScript錯誤,並阻止它們冒泡至更高層。

Context

  1. React中的Context是什麼?
    • Context提供了一種在元件之間共享值的方式,而不必顯式地透過每一層元件傳遞props。

Refs

  1. React中的Refs是什麼?它們如何工作?
    • Refs提供了一種方式,允許我們訪問DOM節點或在render方法中建立的React元素。

高階元件(HOC)

  1. 什麼是高階元件?
    • 高階元件是接受一個元件並返回一個新元件的函式。

路由

  1. React中如何實現路由?
    • 可以使用React Router庫來實現路由功能,它提供了BrowserRouter、Route、Link等元件和API。

服務端渲染(SSR)

  1. React如何進行服務端渲染?
    • 可以使用Next.js或Gatsby等框架來實現React的服務端渲染,它們提供了內建的服務端渲染支援和最佳化。

相關文章