React 非親子コンポーネントパラメータ渡しのサンプルコード

React 非親子コンポーネントパラメータ渡しのサンプルコード

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。

React は主に UI の構築に使用され、React は MVC の V (ビュー) であると考える人が多いです。

React は Facebook の社内プロジェクトとして始まり、Instagram の Web サイトの構築に使用され、2013 年 5 月にオープンソース化されました。

React はパフォーマンスが高く、コードロジックも非常にシンプルなため、注目して使用する人が増えています。

Reactの機能

1. 宣言型設計 − React は、アプリケーションの記述を容易にする宣言型パラダイムを使用します。

2. 効率性 - React は DOM をシミュレートすることで DOM とのやり取りを最小限に抑えます。

3. 柔軟性 − React は既知のライブラリやフレームワークとうまく連携します。

4.JSX − JSX は JavaScript 構文の拡張です。 React 開発では JSX の使用は必須ではありませんが、推奨されます。

5. コンポーネント − React を使用してコンポーネントを構築すると、コードの再利用が容易になり、大規模プロジェクトの開発にも適用できます。

6. 一方向のレスポンシブなデータフロー − React は一方向のレスポンシブなデータフローを実装しており、コードの重複が削減されるため、従来のデータバインディングよりもシンプルです。

以下は、React の非親子コンポーネントパラメータ渡しのコード例です。具体的な内容は以下のとおりです。

新バージョン: クロスレベルパラメータ受け渡しの主な目的は、各レベルで値を割り当てることを避けることと、dvaの使用を避けることです。

'react' から React をインポートします
const {プロバイダー、コンシューマー} = React.createContext('default')
デフォルトのクラスContextDemoをエクスポートし、React.Componentを拡張します。
    状態={
        新しいコンテキスト:'createContext'
    }
  与える() {
      const { newContext } = this.state
    戻る (
        <プロバイダー値={newContext}>
            <div>
                <label>子コンテンツ</label>
                <input type="text" value={newContext} onChange={e=>this.setState({newContext:e.target.value})}/>
            </div>
            <息子 />
        </プロバイダー>
    )
  }
}
クラスSonはReact.Componentを拡張します{
    与える(){
        返す <消費者>
            {
                (名前)=>
                    <div style={{border:'1px solid red',width:'60%',margin:'20px auto',textAlign:'center'}}>
                        <p>サブコンポーネントによって取得されたコンテンツ: {name}</p>
                        <孫 />
                    </div>
                
            }
        
        </消費者>
    }
}
GrandsonクラスはReact.Componentを拡張します{
    与える(){
        返す <消費者>
            {
                (名前)=>
                    <div style={{border:'1px solid red',width:'60%',margin:'20px auto',textAlign:'center'}}>
                        <p>孫コンポーネントによって取得されたコンテンツ: {name}</p>
                    </div>
                
            }
        
        </消費者>
    }
}

古いプロジェクトメソッドも導入され、prop-typesが使用される。

'react' から React をインポートします
'prop-types' から PropTypes をインポートします
クラスContextDemoはReact.Componentを拡張します。
    // 子コンテキストを取得する
    状態={
        新しいコンテキスト:'createContext'
    }
    子コンテキストを取得する(){
        {値:this.state.newContext} を返します
    }
  与える() {
      const { newContext } = this.state
    戻る (
            <div>
                <div>
                    <label>子コンテンツ</label>
                    <input type="text" value={newContext} onChange={e=>this.setState({newContext:e.target.value})}/>
                </div>
                <息子 />
            </div>
    )
  }
}
クラスSonはReact.Componentを拡張します{
    与える(){
        <div> を返す
            <p>子:{this.context.value}</p>
        </div>
    }
}
Son.contextTypes = {
    値:PropTypes.文字列
}
ContextDemo.childContextTypes = {
    値:PropTypes.文字列
}
エクスポートデフォルト()=> 
  <コンテキストデモ>
  
  </コンテキストデモ>

参照

'react' から React をインポートします

// 関数コンポーネントもref経由でdomを取得したい
const TargetFunction = React.forwardRef((props, ref) => (
    <input type="text" ref={ref}/>
))
デフォルトのクラスFrodWordRefDemoをエクスポートし、React.Componentを拡張します。
  コンストラクタ() {
    素晴らしい()
    this.ref = React.createRef()
  }

  コンポーネントマウント() {
    this.ref.current.value = 'ref 入力を取得'
  }

  与える() {
    <TargetFunction ref={this.ref}> を返します
    </ターゲット関数>
  }
}

pubsubjs の

'react' から React をインポートします
'pubsub-js' から PubSub をインポートします
デフォルトのクラスBroをエクスポートし、React.Componentを拡張します{
    状態 = {
        価値:''
    }

    与える(){
        const {値} = this.state
        PubSub.subscribe('SOS',(res,data)=>{
            this.setState({
                値:データ
            })
        })
        戻る (
            <div>
                <h1>{value}</h1> を受け取りました
            </div>
        )
    }
}
'react' から React をインポートします
'pubsub-js' から PubSub をインポートします
デフォルトのクラスChildrenをエクスポートし、React.Componentを拡張します{
    状態 = {
        価値:''
    }
    ハンドルチェンジ = (e) => {
        this.setState({
            値:e.target.value
        })
    }
    送信 = () => {
        const {値} = this.state
        PubSub.publish('SOS',値)
    }
    与える(){
        const {値} = this.state
        戻る (
            <div>
                <input type="text" value={value} onChange={this.handelChange}/>
                <button onClick={this.send}>送信</button>
            </div>
        )
    }
}

React非親子コンポーネントパラメータ受け渡しのサンプルコードに関する記事はこれで終了です。React非親子コンポーネントパラメータ受け渡しに関するより関連性の高いコンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • antd ツリーと親子コンポーネント間の値転送問題について (React のまとめ)
  • React親子コンポーネント通信実装方法
  • 親コンポーネントと子コンポーネント間で値を渡すReactメソッド
  • 親コンポーネントと子コンポーネント間のReact通信プロパティ
  • Reactの親子コンポーネント転送とその他の重要なポイントの詳細な説明
  • react.js 親子コンポーネント データ バインディング リアルタイム通信 サンプル コード
  • React親子コンポーネント値転送(コンポーネント通信)実装方法

<<:  MySQL における explain の役割の詳細な説明

>>:  VMware Workstation 14 Pro に Win10 システムをインストールする

推薦する

Vue で Graphql インターフェースを実装する例

注意:この記事は現在取り組んでいる nestjs+graphql+serverless 合宿における...

MySQL MHA 操作ステータス監視の概要

目次1. プロジェクトの説明1.1 背景1.2 実装設計1.2.1 従来の方法1.2.2 最適化され...

TypeScript 列挙型

目次1. 概要2. デジタル列挙2.1 逆マッピング3. 文字列の列挙4. const列挙5. まと...

JavaScript で円形のプログレスバー効果を実装する

この記事では、円形のプログレスバー効果を実現するためのJavaScriptの具体的なコードを参考まで...

JavaScript イベント ループのケース スタディ

js のイベント ループJavaScript はシングルスレッドなので、同じイベントで実行できるメソ...

SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

序文Sass は CSS3 言語の拡張機能です。Sass を使用すると、より良いスタイルシートをより...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

マテリアルデザインで水滴アニメーションボタンを実現するための純粋なCSS

序文こういう特殊効果ってよく見かけますよね。すごくかっこいいですよね。 これは、Google Mat...

jQuery Ajax チャットボットの実装事例

チャットボットは多くの手作業を省くことができ、顧客サービス、天気予報対応など、さまざまな状況で使用で...

Linux で MongoDB のリモート自動バックアップを実装する方法

序文古いプロジェクトを引き継ぐ苦労 - MongoDB クラスターの学習と構築に関する前回の記事を読...

Web デザインにおける HTML フォーマットと長いファイルに関するヒント

<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案、W...

SQLクエリの実行順序をゼロから学ぶ

SQL クエリ ステートメントの実行順序は次のとおりです。 (7)選択 (8) DISTINCT &...

Vueのインストールと使用

目次1. Vueのインストール方法1: CDNの導入方法2: 直接ダウンロードしてインポートする方法...

Docker コンテナの uid と gid の詳細な理解

デフォルトでは、コンテナ内のプロセスは root ユーザー権限で実行され、この root ユーザーは...