Reactはconetxtを通じてマルチコンポーネント値転送関数を実装します

Reactはconetxtを通じてマルチコンポーネント値転送関数を実装します

この関数の効果はvue的provide/injectに似ています。
contextを通じて反応できる

ここに画像の説明を挿入

パブリックファイルcontext/Theme.jsxを定義する

'react' から {createContext} をインポートします。
const テーマ = createContext()
デフォルトテーマをエクスポート

親コンポーネントはパブリックファイルと子コンポーネントをインポートし、 theme值を渡します。

React をインポートし、{useState} を 'react' から取得します。
「@/components/Child.jsx」からChildをインポートします。
「@/context/Theme.jsx」からテーマをインポートします。
エクスポートデフォルト()=> {
    const [theme, setTheme] = useState("blue")
    戻る (
        <>
            <button onClick={() => setTheme("green")}>コンテキストがレスポンシブかどうかを確認する</button>
            <Theme.Provider 値 = {テーマ}>
                <子供 />
            </テーマ.プロバイダー>
        </>
    )
}

子コンポーネントがデータを取得するcomponents/Child.jsx

'react' から React をインポートします。
「@/context/Theme.jsx」からテーマをインポートします。
エクスポートデフォルト()=> {
    戻る (
        <テーマ.消費者>
            {data => <p>親コンポーネントのコンテキストから渡された値を受け取ります: {data}</p>}
        </Theme.Consumer>
    );
}

これで、conetxt による React のマルチコンポーネント値転送についての説明は終了です。React のマルチコンポーネント値転送の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactコンポーネントの値の受け渡しの関係の詳細な説明
  • Reactコンポーネントで値を渡す3つの方法
  • Vue と React コンポーネント間の値の転送の詳細な説明
  • 親コンポーネントと子コンポーネント間で値を渡すReactメソッド
  • Reactの子コンポーネントは親コンポーネントに値を転送します

<<:  フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

>>:  HTML フォームタグチュートリアル (4):

推薦する

TCP 3 回目のハンドシェイク データ転送プロセス図

RFC793 ドキュメントの SYN フラグを持つプロセス パケットはデータを伝送できません。つま...

mysqlのデータディレクトリ内のファイルを直接コピーしてデータを復元する実装

mysqlはデータディレクトリ内のファイルをコピーしてデータを復元します背景: MySQL がクラッ...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

Vueスロットの使用の詳細

目次1. スロットを使用する理由1.1 スロット1.2 コンポーネントのスロット1.3 例2. この...

背景のグラデーションと自動フルスクリーンを実現するCSSコード

背景グラデーションと自動フルスクリーンに関する CSS の問題編集長は CSS の開発中に致命的な問...

JavaScript で 2 次元配列を作成するためのヒント

Js での 2 次元配列の作成:まず、JavaScript は 1 次元配列のみをサポートしています...

Linux で文字化けしたファイルや特殊文字のファイルを削除する方法

エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...

MySQL query_cache_type パラメータと使用方法の詳細

MySQL クエリ キャッシュを設定する目的は次のとおりです。クエリ結果をキャッシュしておくと、次回...

MySql5.7.18 の文字セット構成の詳細なグラフィック説明

背景:かなり前(2017.6.5、記事にはタイムリーさがあり、特に使用されているツールは頻繁に更新さ...

base target="" はリンクのターゲットオープンフレームを制御します

<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...

無効な Nginx クロスドメイン設定 Access-Control-Allow-Origin の解決策

nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...

文字列の最初の文字を取得してテキストアイコン機能を実現する純粋なCSS

CSS でテキストアイコンを実装する方法 /*アイコンスタイル*/ .nav-icon-norma...

Vue スキャフォールディング学習プロジェクト作成方法

1. 足場とは何ですか? 1. Vue CLI Vue CLI は、Vue.js をベースにした迅速...

Zookeeper 不正アクセス テストの問題

目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...

CSS3 シンプルカットカルーセル画像実装コード

実装のアイデアまず、親コンテナーを作成し、2 つの順序なしリストを使用して、柔軟なレイアウトで親コン...