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):

推薦する

Linux での mysql および mysql.sock のインストールに関する問題

最近、Linux に Aphace、mysql、php をインストールするときに多くの問題に遭遇しま...

Vueは3階層メニューを再帰的に実装する

この記事の例では、3階層メニューを再帰的に実装するVueの具体的なコードを参考までに共有しています。...

uniapp 要素ノードスタイルの動的変更の詳細な説明

目次1. スタイル属性をバインドして変更するhtml:対応するjs:達成された効果:次に、refを使...

Mysql の大きな SQL ファイルの高速リカバリ ソリューションの共有

序文MySQL データベースを使用する過程では、データベースのバックアップと復元が必要になることがよ...

JavaScript の重要なブレークポイント デバッグ手法の概要 (推奨)

目次デバッガーを使用する理由は何ですか? Chromeデバッガーの基本的な使い方VS Code によ...

MySQLデータ損失のトラブルシューティング事例

目次序文現地調査ケースの再現要約する序文最近、友人が突然WeChatで連絡してきて、MySQLでデー...

Docker で Ubuntu に Python3 と Pip をインストールする際の問題

文章1) Ubuntuイメージをダウンロードする docker プル Ubuntu 2) 画像を見る...

コンテンツの位置をランダムにドラッグするHTMLを実装する2つの方法

テスト: Chrome v80.0.3987.122 は正常です方法は2つあります。通常のラベルの位...

MySQL の union と union all の簡単な分析

データベースでは、UNION キーワードと UNION ALL キーワードの両方が 2 つの結果セッ...

ネイティブ js カスタム右クリック メニュー

この記事の例では、参考のためにjsカスタム右クリックメニューの具体的なコードを共有しています。具体的...

CSS グリッドレイアウトを使用してレスポンシブな縦棒グラフを作成する方法

私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...

シンプルな計算機を実装する JavaScript コード

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

小規模プログラムへのデータキャッシュ機構の応用と実装

ミニプログラムデータキャッシュ関連知識データ キャッシュ: データをキャッシュして、アプレットを終了...

Vue 計算プロパティ実装トランスクリプト

この記事では、Vueの計算プロパティ実装レポートカードを参考に共有します。具体的な内容は次のとおりで...

MIME タイプの完全なリスト

MIME タイプとは何ですか? 1. まず、ブラウザがコンテンツを処理する方法を理解する必要がありま...