ブログblog

【React】useContextについて

Writer: tokuyasu 更新日:2023/11/07

こんにちは、デジナーレ福岡オフィスの徳安です。
この記事では、useContextについて説明します。

useContextとは

useContextはコンポーネントで、
コンテクスト(context)の読みとり
サブスクライブ(subscribe, 変更の受け取り)
行うためのReactフック。

通常、親コンポーネントから
子コンポーネントには
propsを使って情報を渡す

propsを受け渡す際、
多数の中間コンポーネントを
経由して渡さないといけない場合や、
アプリ内の多くのコンポーネントが
同じ情報を必要とする場合
propsの受け渡しは冗長で、不便なものになる。
 →props drilling(propsのバケツリレー)
と呼ばれる状況に陥る。
そういった際に、
コンテクストを使用することで、
親コンポーネントから、
propsを明示的に受け渡さなくても
任意のコンポーネントが
情報を受け取れるようにできる機能。

=== サンプル ===

コンポーネントのトップレベルで
useContextを呼び出して
サブスクライブする。
簡単なサンプルを作成してみる。
<ファイル構成>

・propsの受け渡しで、stateを渡す場合

【APP.jsx】

【SampleA】

【SampleB】

【SampleC】

このように親コンポーネントから値を受け渡す際に

バケツリレーで値を受け渡しているため

不要なpropsの受け渡しが発生している。

・contextを使用して、値を受け取れるようにする場合

【APP.jsx】

【SampleA.jsx】

【SampleB.jsx】

【SampleC.jsx】

useContextを使用すれば、

ツリー内の様々な階層から

Contextに収容されている

データへアクセスすることができる

ここまで読み進めていただきありがとうございます。