[React Hook 筆記] 從最基本的useState, useEffect 開始

Hannah Lin
Hannah Lin
Published in
11 min readJan 29, 2021

--

(新增 typing 於 2023/11/7)

React Hook 系列文

1. 從最基本的 Hook 開始 useState, useEffect
2. Memorized Hook- useMemo, useCallback
3.
useRef
4. useContext
5. useReducer
6. useLayoutEffect
7. Custom Hooks

本來不想寫這篇的,因為網路上實在太多關於 useStateuseEffect 文章,但還是想要把一些重點寫出來

🔖 文章索引1. 用 React Hooks 的規則
2.
useState
3.
useEffect
4. useState/useEffect in typeScript

Why use hooks?

自己寫 React 也兩年了,針對 Hook 跟舊的 Class 寫法跟做比較。

  • Keep state logic close to where it is used: 不需要像 Class 再分 View 跟 Lifecycle 的檔案
  • Often requires less code and less prop passing: 可以用更少的程式碼撰寫
  • Can be more granular: 只需要更新 specific dependencies 變動就好
  • Improves reliability and allows for logical grouping of functionality
  • 藉由 custom hook 更容易 reuse

想轉 Hooks 的成本也蠻低的,不需要整個專案都 migrate 到 Hooks,他可以跟 Class 並存,所以若手上有 React 案子可以先從小的 components 先試試看 Hooks。

用 React Hooks 的規則

使用 Hooks 前有一些要遵守的規則

  • 只能在 React Function 中呼叫 Hook class component 是不能用的
// Class-based Component
class App extends React.component {
render () { return </> }
}
// Function Component
function App () {
}
  • 只在最上層呼叫 。不要在迴圈、條件式或是巢狀的 function 內呼叫…

--

--