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

推薦する

jQueryでフルスクリーンスクロール効果を実現

この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...

winx64 での mysql5.7.19 の基本的なインストール プロセス (詳細)

1. ダウンロード参考: https://www.jb51.net/softs/451120.ht...

Docker環境にJenkinsコンテナをインストールする詳細なチュートリアル

推奨される Docker 学習教材: https://www.runoob.com/docker/d...

Linux Centos でスクリプトを使用して Docker をインストールする方法

Dockerの主な機能は何ですか?現在、Docker には少なくとも次のアプリケーション シナリオが...

Linux スレッド間の同期と排他制御の知識ポイントのまとめ

スレッドが同時に実行される場合、スレッドがリソースを競合してデータの曖昧さが生じるのを防ぐために、重...

Macシステムをインストールした後にVMWareがフルスクリーンで表示できない問題を解決する

システム: VMTOOLs ダウンロード:リンク: https://pan.baidu.com/s/...

MySQL がデフォルト値を持つ NULL 列の使用を推奨しない理由

よく聞かれる答えは、列に NULL 値を使用するとインデックスが無効になるというものですが、実際にテ...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

HTMLは角丸四角形を簡単に実装します

質問: div+css と配置を使用して角丸四角形を実現するにはどうすればよいですか?ソリューション...

MySQLにデータを素早くインポートする方法

序文:日々の勉強や仕事の中で、データをエクスポートする必要に迫られることがよくあります。たとえば、デ...

Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...

Tomcat の文字化けしたコードとポート占有の解決方法について簡単に説明します

Tomcat サーバーは、無料でオープン ソースの Web アプリケーション サーバーです。軽量のア...

モバイルデバイスでインラインスクロールを実装するための4つのソリューションの詳細な説明

ニーズの発見領域の一部のみスクロールでき、残りの部分は移動できない場合、どのような方法を使用しますか...

Dockerコンテナの入退出方法の詳細な説明

1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...

Vue プロジェクトを実行するときに `--fix` オプションで修正できる可能性のある警告のエラー問題を解決します。

問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...