---
# System prepended metadata

title: 2021-07-01 メンターセッション
tags: [Team-2]

---

# 2021-07-01 メンターセッション

## 質問

### useState/useContext/useReducerの使い分け
- useStateとuseReducerは似ている
  - useReducerはたくさんのstate、複雑なstateをまとめて管理しやすい
  - useReducerはdispatchやactionを用意する
    - このactionがきたらこれをする！をきめるのがdispatch
  - どちらもコンポーネントで完結する
  - reducerに処理を隠蔽できるので凝集度が高く感じることがある 
- useContextは別物
  - コンポーネントをまたいでステートを管理できる

### よく使うhooks、あまり使わないhooksについて
- useState/useEffect　-> よく使う
- useReducer -> ステートが複雑になったら使うが、そこまで見ない
- useCallback / useMemo -> 迷ったら使え！！！！
    - 子供のコンポーネントがメモ化されていた時に引数として渡す関数がある
    - この関数は親コンポーネントが再レンダリングされると別物と認識される
    - こういう時はuseCallbackしておくと子コンポーネントは再レンダリングされない
- useRef -> ごく稀に見る
    - DOMのイベントを取りたい（useRefで登録するしかない）
    - 課題のように値を保持しておくために使うことはある

### どんな状態管理の手法を取ってますか？
- redux -> 今はない（そこまで大量の状態を管理することが少ない）
    - 過去に使ったケース
        - 画面が100個くらいあって画面間で同じ情報を共有する

### 特大課題の仕様について
- 細かい仕様についての加筆、前提の共有などを行っていただく

###### Tags: `Team-2`