React で UseContext フックをマスターする

React のuseContextフックは、プロップの長いチェーンを介してデータを渡すことなく、コンポーネント間で状態を共有するための強力なツールです。を使用するとuseContext、コンポーネント ツリー全体で状態を簡単に共有できるため、グローバルな状態を管理するための便利なツールになります。

この記事では、フックの基本を説明しuseContext、それを使用して React アプリケーションの状態を管理する方法を見ていきます。

UseContext フックをマスターする

とは何ですかuseContext?

useContextは、親コンポーネントによって作成されたコンテキストからデータを利用できるようにする組み込みの React フックです。コンテキストは、コンテキストを作成したコンポーネントの子孫であるコンポーネントからアクセスできる共有状態データを保持するオブジェクトです。

フックuseContextはコンテキスト オブジェクトを引数として受け取り、そのコンテキストの現在の値を返します。これは、コンテキストが更新されると、コンテキストを使用するすべてのコンポーネントの再レンダリングが自動的にトリガーされることを意味します。

使い方はuseContext?

を使用するにはuseContext、まずコンテキスト オブジェクトを作成する必要があります。createContextこれは、ライブラリのメソッドを使用して行うことができますReact。以下に例を示します。

import React from 'react';

const MyContext = React.createContext();

import React from 'react';

const MyContext = React.createContext();

function App() {
  const [count, setCount] = React.useState(0);

  return (
    <MyContext.Provider value={{ count, setCount }}>
      <div>
        <h1>Count: {count}</h1>
        <Counter />
      </div>
    </MyContext.Provider>
  );
}

function Counter() {
  const { count, setCount } = React.useContext(MyContext);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <button onClick={increment}>Increment</button>
    </div>
  );
}

コンポーネントAppは、その子コンポーネントをコンポーネント内でラップしMyContext.Provider、共有状態の現在の値をvalueprop として渡します。countこの場合、値は状態と関数を含むオブジェクトですsetCount。

コンポーネントはフックを使用してオブジェクトをCounter消費し、コンテキスト オブジェクトから状態と関数を抽出します。次に、ボタンがクリックされたときに共有状態を更新する関数を使用します。MyContextuseContextcountsetCountincrement

いつ使用するかuseContext?

useContextアプリケーション全体の複数のコンポーネントからアクセスする必要があるグローバル状態を管理する場合に最も役立ちます。これは、プロップの穴あけが面倒な場合や、コンポーネントの複数のレイヤーを介して状態を渡すことを避けたい場合に適しています。

useContextこれは、コンポーネント ツリーを通じて関数を渡す必要がある場合にも適しています。コンテキスト オブジェクトを介して関数を渡すことにより、コンポーネントの複数のレイヤーを介して関数を渡す必要がなくなります。

結論

フックuseContextは、グローバル状態を管理するための強力なツールです。

これくらいで説明できれば幸いです。

提案された投稿

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

はじめに 脳卒中は、いつでも誰でも起こり得る医療上の緊急事態です。これは、脳の一部への血流が中断され、脳機能が突然失われることで発生します。

私が最もよく使用するコーディング リソース

私が最もよく使用するコーディング リソース

今週、毎日のメールリストのメンバーからメールを受け取りました。彼らは次のことを知りたかったのです。毎日、毎週、毎月どのリソースにアクセスしていますか? 素晴らしい質問です!私のワークフローと使用している主なリソースについての洞察を共有したいと思います。

関連記事

地球を救ってお金を稼ぐ方法

地球を救ってお金を稼ぐ方法

ペットボトル、ガラス瓶、アルミ缶、グリーンエネルギーパッケージなどを、何回考えずに捨てたことがあるでしょうか? リサイクルする代わりに何かが得られたらいいのにと何度思ったことか。あなたがほとんどの人と同じなら、おそらく答えは何度もあるはずです。リサイクルは、多くの場合、即時的または具体的な利益をもたらさない面倒な作業、面倒な作業、または義務であると考えられています。

ネットワークテレビツイッター

ネットワークテレビツイッター

古いものは再び新しくなり、以前はキラキラ輝いていたものがくすんで見えます。私は、JNCO ジーンズが 1990 年代後半の他のファッションとともにダウンタウンのクールな子供たちの間で復活したことについて話しているのではありません。

その脅威アーカイブ: Vol 7 ブラックバスタ

その脅威アーカイブ: Vol 7 ブラックバスタ

今日の相互接続された世界では、サイバー攻撃の脅威がかつてないほど蔓延しています。サイバー犯罪者や国家主体は常に脆弱性を悪用して貴重なデータを盗もうとしており、あらゆる規模の組織に重大なリスクをもたらしています。

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。