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 システムをインストールする

推薦する

Linux のハードリンクとソフトリンクの区別

Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...

HTML チュートリアル: よく使われる HTML タグのコレクション (5)

導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...

JSでHTML本文のスタイルを変更する

目次1. 本来の定義2. JS操作、幅の変更を例に3. 効果: 幅が変更されました 1. 本来の定義...

CSSの使用に関する深い理解 clear:both

clear:both清除浮動これは私が常に持っていた印象ですが、私はこれをめったに使用せず、私の理...

TomcatはNginxリバースプロキシのクライアントドメイン名を取得します

質問Nginx リバース プロキシの後、Tomcat アプリケーションは、クライアント ブラウザーの...

Vue での this.$set の使用に関する詳細な説明

目次Vue での this.$set の使用使用なぜレスポンシブなのか?分析する要約するVue での...

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

Vue 監視プロパティと計算プロパティ

目次1. 監視プロパティを監視する1. ショッピングカート2. すべて選択し、すべて選択解除する2....

vsFTP 3.0.3 のコンパイルとインストールの詳細な分析

脆弱性の詳細VSFTP は、GPL に基づいてリリースされた Unix ライクなシステムで使用される...

MySQL データベースのホットスタンバイにおける問題点の分析

以前、MySQL データベースのデュアルマシン ホット スタンバイの設定方法を紹介しました。ご興味の...

js を使用して数字推測ゲームを実装する

先週、先生が私に数字当てゲームをするちょっとした宿題を出しました。とても面白いと思ったので、適当に書...

Reactを使用する際の7つの落とし穴のまとめ

目次1. コンポーネントの肥大化2. 状態を直接変更する3. プロパティは数値を渡す必要があるが文字...

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

クリックナンバーゲームを実装するネイティブJS

参考までに、クリックナンバーゲームをネイティブJSで実装しました。具体的な内容は以下のとおりです。最...

JavaScript axiosのインストールとパッケージ化のケースの詳細な説明

1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...