---
# System prepended metadata

title: 為了與 React 相遇，我已在佛前求了五百年
tags: [面試]

---

# 為了與 React 相遇，我已在佛前求了五百年
###### tags:`面試`

## 為什麼要選擇 React，而不是 Vue、Angular 或其他框架？

<details><summary>❓</summary>

* 和寫原生 js 的差別
* 資料&畫面是單、雙向綁定
* React 的思考模式
</details>

## 請列出 React 內建的所有 hook，並大概講解功能是什麼？

<details><summary>❓</summary>

* `useState`
    * lazy init
    * 如果有更複雜計算可以怎麼設初始值

* `useEffect`
    * 適用時機
    * dependencies
    * clean function
    * useEffect vs useLayoutEffect
    
* `useLayoutEffect`
    * 觸發的時機點

* `useEffect`
    * 適用時機
    * dependencies
    * clean function

* `useContext`
    * 為了解決什麼問題而誕生的 hooks

* `useCallback`
    * 快取
    * 防止不必要的 render 發生
    * memo(components)
    * useMemo
    
* `useMemo`
    * (state)
     
* `useCallback` 
    * (function)

* `useRef` 
    * uncontrolled
    * uncontrolled 跟 controlled component 差在哪邊
    
* 未提及的內建 hooks(不熟悉、不好聯想、選擇性不提)
    * `useReducer`
    * `useDebugValue`
</details>

## 為什麼我們需要 Redux？

<details><summary>❓</summary>

* component 太多
* 追蹤 action
* redux dev tool
</details>details>

## Redux 是什麼？可以簡介一下 Redux 的各個元件跟資料流嗎？

<details><summary>❓</summary>

* 狀態管理工具
* 方便管理 state
* 三大元件
    * `action`
        * 事件類別 type
        * 額外資料 payload
    * `reducer`
        * reducer = (action) => new state
    * `store`
        * 儲存整個 state tree
</details>details>


## 該怎麼把 React 跟 Redux 串起來？

<details><summary>❓</summary>

* react-redux
    * connect API(不熟悉沒關係，點到就好，但要有個大概印象)
        * HOC
    * hooks API
        * useDispatch
        * useSelector
</details>details>


## Redux middleware 是什麼？

<details><summary>❓</summary>

* 跟原本的 redux 差在哪
* 資料轉換
* action 不再只是 js 的物件
* Redux thunk
</details>details>


## 請列出 class component 的所有 lifecycle

<details><summary>❓</summary>

及格：點出 component 在 Mounting、Updating、Unmounting 個階段做的事 
滿分：Mounting、Updating、Unmounting 各階段 執行了那些 method

* Mounting
    * constructor
    * render
    * componentDidMount
* Updating
    * shouldComponentUpdate
    * render
    * componentDidUpdate
* Unmounting
    * componentWillUnmount
</details>details>

## 若遇見 React 上機考

<details><summary>❓</summary>

那就請各位施主自求多福啦，阿彌陀佛~
</details>details>
