React.memo/useMemo/useCallback関数について
useStateで状態管理しているページでコンポーネントの不要な再レンダリングを避けるために使う
memo化する例
app.jsのなかにある「子コンポーネント」の要素が再読み込みされた際に内容に変更がない場合
レンダリングの確認方法
googleのReactデベロッパーツールでハイライト項目にチェックで確認可能
リロード、useState(inputなどへ文字を打ち込む度にレンダリングされる)
コンポーネントのmemo化
(React.memo)+eslint
const Child イコール React.memo(() アロー 波括弧
リターン (
子コンポーネント
)
波括弧)
みたいな書き方をすると子コンポーネントに変化がない限りレンダリングされない。
変数のmemo化(useMemo)
子コンポーネントが重い処理をする場合且つ変更がないコンポーネントの場合
For文などボタンを押すたびにカウントされる機能など
const doublecount = useMemo(() アロー double(count),[count]);
関数のmemo化(useCallback)
const handleClick = useCallback(() アロー 波括弧
・ハンドルクリックは毎回生成されなくなる
波括弧)
最終まとめ
何でもかんでもメモ化するのは良くない、 レンダリングする際に処理が重いものに対して積極的に使う事。