1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【useContext (ReactHooks)】

Posted at

コンテキストを利⽤するためのHookで、ツリー全体でデータを共有するために使⽤する。
useContextを使用することでpropsを利用することなく異なる階層のコンポーネントとデータの共有を行うことができる。って書いて歩けおよくわからん。難解。

useContext は 「情報をまとめて、どこからでも使えるようにする仕組み」(ログイン情報とかで使う)

イメージ
イメージは学校のロッカー。
例えば、学校のクラスで 「みんなが使う共通のロッカー」 があるとする。 ロッカーには 教科書、ノート、筆箱 など、みんなが使うものが入ってる。 生徒は 自分の席からロッカーの中のものを取り出せる。この「共通のロッカー」が useContext 。 一度ロッカー(Context)に必要な情報を入れておけば、どこからでもすぐに取り出して使える!

プログラムでの useContext の使い方
例えば、アプリの 「テーマ設定」(明るい or 暗い)をどこでも使えるようにしたいとする。

ロッカー(Context)を作る

const ThemeContext = React.createContext("light");  // みんなが使う「テーマのロッカー」

↑ これで「テーマ情報を入れる共通のロッカー」ができた

ロッカーにテーマを入れる

<ThemeContext.Provider value="dark">
  <App />  {/* みんなが「暗いテーマ」を使える */}
</ThemeContext.Provider>

↑ value="dark" だから 「アプリ全体のテーマは暗い!」 と決めた

どこでもテーマを取り出せる

const theme = useContext(ThemeContext);
console.log(theme); // "dark"

↑ これで「ロッカーからテーマを取り出して使う」ことができる!

useContextは「共通のロッカー」を作って、みんなが使えるようにする。
一度 Provider で情報を入れたら、どこからでも useContext で取り出せる。
よく使う情報(テーマ、ユーザー情報など)を管理するのに便利!
これを使えば、毎回 props(親から子へ情報を渡す仕組み)を使わなくても、どこからでもデータが使えて スッキリしたコード になる

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?