generated at
ReactのContextについて考える
用途について
Containerコンポーネントの受け渡しに使う
Storybookのドキュメントでは props または Context を使って Container コンポーネントを受け渡すことで、モックやスタブを使わずにストーリーを記述する方法が紹介されています (Container/Presentationalコンポーネント)
個人的にこの Context の使い方はとてもよいと思いました

グローバル状態の共有
javascript
// TODO
個人的にはこの使い方は可能であれば避けたほうがよいと思います
もしやるのであれば、読み込み専用※の状態などの共有に留めるとよいのではないかと思います
※状態が変更されない(immutableである)ことを指しています
例) アプリケーション全体で共有される読み込み専用のユーザーやテーマ, APIクライアントなどのオブジェクトなど
そもそも共有状態の使用をできる限り避けて、 Context の使用がほとんど必要ない状態が理想的ではないかと思います
個人的には Context を乱用してグローバル状態をたくさん生み出してしまうよりは、propsのバケツリレーをした方がだいぶマシだと個人的には思います (たしかにコードの記述量は減らせるものの、結合度テスタビリティ, 再利用性などは大きく低下してしまうと思います)
もし共有状態の変更が必要なのであれば、ReduxJotaiなどのより適した方法があるためそちらを使用した方がよいと思います
あとで書く: グローバルの共有状態を Context で共有することのリスクについて