おかえりなさい、友達!
今日は useContext と呼ばれる React Hook の基本について説明します。 useContext は、useState をさらに一歩進んで、props を直接渡さずに子コンポーネントや孫コンポーネントに情報を渡すことができるグローバルのような State を作成する強力なツールです。
しかし、私は自分自身の先を行っています。
useState に詳しくない場合は、まず前の記事に飛んで読んでから、戻ってきて驚かれる準備をしてください。
「useState」の使用方法: https://dev.to/deborah/how-to-use-state-in-react-2pah
「useState」について理解したところで、「useContext」について詳しく見ていきましょう!
useContext は、グローバル スコープに配置する必要があるデータ (アプリケーション全体で誰かをログイン状態に保つユーザー名など) に最適ですが、これは、プロパティを子コンポーネントに渡します。
ただし、useContext を使用すると、props を直接渡さずにデータを渡すことができるため、複数の子コンポーネントからアクセスする必要があるデータや、アプリケーション全体で使用できるようにする必要があるデータに遭遇した場合に非常に役立ちます。
useContext を起動して実行するには、2 つの手順を実行する必要があります。まず、コンテキスト オブジェクト ('createContext') を作成する必要があります。次に、フック 'useContext' を使用してプロバイダ経由で値にアクセスする必要があります。 。
次の例は、useContext の概要とその使用方法をよりよく理解できるように簡略化されていますが、createContext は独自の別のファイルで宣言されることが多いことに注意してください。ただし、私は「Parent.js」を典型的な「App.js」ファイル(コンポーネント階層の最上位のコンポーネント)に例えています。 Parent.js では、すべての状態変数とそれらの状態変数を更新する関数を定義し、useEffect を使用してデータベースにフェッチしました。 Context の核となる概念をよりよく理解できるように、この説明を簡素化するために、独自のファイルを作成するのではなく、トップレベルのコンポーネントで createContext を宣言することにしました。
export Context = React.createContext();
「Context」は、「createContext」を呼び出して作成されたコンテキスト オブジェクトです。コンテキスト オブジェクトは Provider と呼ばれるコンポーネントを保持します。これを呼び出して、「グローバル」レベルで保持したい変数や関数を渡すことができるようになります。
return(// Other JSX & the child components we want to hand Context to. );
「Context.Provider」を完了するには、「Provider」に値を指定する必要もあります。ここで、子コンポーネントの「コンテキスト」で呼び出すすべての変数と関数を含むオブジェクトを渡します:
return(// Other JSX & the child components we want to hand Context to. );
変数と関数を使用するすべての子コンポーネントをタグの間に置く必要があることに注意することが非常に重要です。例えば:
return();
プロパティを「value」内に置く限り、(「useState」の場合のように) プロパティを子コンポーネントに直接渡す必要がないことに注意してください。
createContext を使用し、すべてのグローバル項目を「Context.Provider」に渡したので、子コンポーネントに進み、「Context」の使用方法を確認する準備が整いました。
import Context from ‘./Parent.js’;
import React, { useContext } from ‘react’; import Context from ‘./Parent.js’;
import React, { useContext } from ‘react’; import Context from ‘./Parent.js’; function Child(){ const { example, setExample } = useContext(Context) // The rest of our code
このコードでは、中括弧 {} を使用して、代入の構造化を示しています。これは、Context に格納されている複数の変数や関数を呼び出すことができると言う派手な方法です。また、「Context」を「useContext」に渡して、Context.Provider (「Parent.js」で宣言した) で定義された値にアクセスできるようにします。
const expId = example.id;
または
setExample(newExample);
おめでとう!これで、createContext と useContext を開始するためのツールがすべて揃いました。 useContext を使用すると、子コンポーネントを介して props を直接渡すことなく、変数や関数をコンポーネントに渡すことができる「グローバル状態」のようなものを作成できることがわかりました。
また、アプリケーションでコンテキストを機能させるために必要な 6 つの手順についても詳しく説明しました。これで、createContext と useContext を使用してコーディングを開始する準備が整いました。ただし、クイックスタート ガイドが必要な場合に備えて、ここにアクセスしてください:
export const Context = React.createContext();
//Child components
import React, { useContext } from ‘react’;
import Context from “./Parent.js’;
const { example, handleExample } = useContext(Context);
最後にもう 1 つ注意してください。このテーマについてさらに詳しく知りたい場合は、useContext の学習とこのブログの執筆中に私が参照した公式ドキュメント リソースを以下に示します。
公式ドキュメント:
https://react.dev/reference/react/createContext
レガシー公式ドキュメント。useContext を理解するのに多少役立ちます:https://legacy.reactjs.org/docs/context.html
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3