NOTE 105 / 2022年
値の届く範囲を、Provider からたどる
Context の値がどこから届き、どこで再描画を起こすのかを整理します。
読了目安 約2分
useContext は、親から子へ値を渡す経路を短くする仕組みです。Provider の値が変わると、その値を使っているコンポーネントは再描画の対象になります。どのコンポーネントが値に依存しているかを意識すると、更新の範囲を読みやすくなります。
Context は何でも入れる箱ではありません。画面全体で共有する設定や、複数の階層で必要な状態に向いています。頻繁に変わる値を入れる場合は、分割や memo 化も合わせて検討します。
押さえたい点
- 01値を使うコンポーネントだけが再描画される
- 02Provider の範囲を必要最小限にする
- 03頻繁に変わる値は分割を検討する
参考資料
外部サイトが開きます。内容は各サイトの管理下にあります。
- React 学習ガイド 外部サイトreact.dev
- React リファレンス 外部サイトreact.dev
- React で考える 外部サイトreact.dev
- useState リファレンス 外部サイトreact.dev
- useEffect リファレンス 外部サイトreact.dev
- useContext リファレンス 外部サイトreact.dev
- TypeScript ドキュメント 外部サイトtypescriptlang.org
- TypeScript の設定 外部サイトtypescriptlang.org
- MDN Web Docs 外部サイトdeveloper.mozilla.org
- web.dev 外部サイトweb.dev
- W3C WAI 外部サイトw3.org
- GitHub Docs 外部サイトdocs.github.com
- Chrome for Developers 外部サイトdeveloper.chrome.com