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