React コンテクストを使う前に考えること

Reactで下層のコンポーネントにPropsを渡すためにバケツリレーをやめたいときにコンテクストを使うことは有効ですが、公式では使うときに注意すべきことが書かれています。

コンテクストは主に、何らかのデータが、ネストレベルの異なる多くのコンポーネントからアクセスできる必要がある時に使用されます。コンテクストはコンポーネントの再利用をより難しくする為、慎重に利用してください。

公式ドキュメントからの抜粋ですが、太文字にもなっている通り、多くのコンポーネントで必要とされているデータを渡すときに有効、というのが重要です。

たった一つのコンポーネントのためにコンテクストを使うのはあまりお勧めしないようです。

というのも、そのコンポーネントの再利用性が落ちますし、何よりコンテクストを使うとコードが複雑になります。

一つのコンポーネントにデータを渡すのであれば、childrenをうまく使ったり、子コンポーネント自体をPropsとして渡すのがよさそうです。

私も、この認識がなく、reduxの代わりに使う感覚だったので今後気を付けようと思います。