ホームページ バックエンド開発 PHPチュートリアル React コンポーネント間の通信の例

React コンポーネント間の通信の例

Jun 28, 2017 pm 03:39 PM
react 通信

この記事では主にReactコンポーネント間の通信のサンプルコードを紹介していますが、編集者が非常に良いと思ったので、参考として共有させていただきます。エディターをフォローして見てみましょう

最近、react.js の UI フレームワークを学び始めたところですが、React ライブラリが私に与えてくれる最大の感触は、必要なときに UI レイヤーを完全に引き継ぐことができるということです。ビューを変更します 何かを使用するときは、this.state でその状態を変更するだけで済みます。データ層ビュー層内のものが操作されている限り、変化するのは今でも気に入っています。結局のところ、DOM の直接操作を取り除くことができます。結局のところ、ロジック層の js でさまざまな CSS を混ぜた string にする必要がありますが、これは私にとっては少し不快です (このタグはJSXにも混在していますが、ラベルとして考える必要はなく、ステートメントとして考えると慣れると思います)。

ここ数日間の焦点に戻り、反応コンポーネント間の状態転送について話します。

上記のコード:

1. 2 つの子コンポーネント child-1 と child-2 を定義します


 //child-1 子组件-1为输入框
  class Input extends React.Component{
   constructor(...args){
   super(...args);
   }
   render(){
    return <input type="text"/>
   }
  }
  //child-2  子组-2为显示框
  class Show extends React.Component{
   constructor(...args){
    super(...args);
   }
   render(){
    return <p></p>
   }

  }
ログイン後にコピー


2. 親コンポーネント Parent を定義し、2 つの子コンポーネントを親コンポーネントに挿入します。


class Parent extends React.Component{
   constructor(...args){
    super(...args);
   }
   render(){
    return(
     <p>
      <Input}/>
      <Show/>
     </p>
    );
   }
  }
ログイン後にコピー


現在のタスクは、コンポーネント 1 にテキストを入力し、それを同時にコンポーネント 2 に表示することです。

分析: コンポーネント 2 をコンポーネント 1 と同期するには、コンポーネント 1 と 2 の両方が親コンポーネントの状態をバインドします。これは、両方のコンポーネントを制御下に置くことを意味します。データの方向は、コンポーネント 1 が自身のデータを親レイヤーにプロモートし、それを親レイヤーの状態に保存することです。親レイヤーのデータは、コンポーネント 2 の propsプロパティを介してコンポーネント 2 に渡され、ビューレイヤーにバインドされます。

最初のステップは、最初に コンポーネントをバインドすることです。 コンポーネントに移動し、添付された onShow 属性をそのコンテンツにバインドします。 コンポーネントは



//在父层中的constructor中定义状态为一个空的message,this.state = {message:&#39;&#39;}
class Parent extends React.Component{
  constructor(...args){
   super(...args);
   this.state = {
    message:&#39;&#39;
   }
ログイン後にコピー


このようにして、コンポーネント 2 の表示層のデータがバインドされました。次に、メッセージの内容を変更するだけです。親レイヤーの状態を変更してバインディングを行う 表示レイヤーの内容もそれに合わせて変化します


入力レイヤーのステータス(データ)を親コンポーネントにプロモートする 以下は書き換えたコンポーネント1です



<Show onShow={this.state.message}/>
ログイン後にコピー


。この :onInp() が表示され、コンテンツが存在しない場合は、問題がある可能性があります。心配しないでください。


を見て、親コンポーネントの入力層のサブコンポーネント 1 を書き換えてください


class Show extends React.Component{
  constructor(...args){
   super(...args);
  }
  render(){
   return <p>{this.props.onShow}</p>
  }
ログイン後にコピー


完成したコードはこんな感じです



class Input extends React.Component{
  constructor(...args){
    super(...args);
  }
   //将输入的内容更新到自身组件的状态中,并且将改变后的状态作为参数传递给该组件的一个自定义属性onInp()
  fn(ev){ 
   this.props.onInp(ev.target.value);
  }
  render(){
   //用onInput(注意react中采用驼峰写法和原生的略有不同)绑定fn()函数
   return <input type="text" onInput={this.fn.bind(this)} value={this.props.content}/>
  }
 }
ログイン後にコピー


以上がこの記事の全内容です、皆様の学習に少しでもお役に立てれば幸いです、そして皆さんもScript Homeを応援していただければ幸いです。 。

以上がReact コンポーネント間の通信の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

新世代の光ファイバーブロードバンドテクノロジー - 50G PON 新世代の光ファイバーブロードバンドテクノロジー - 50G PON Apr 20, 2024 pm 09:22 PM

前回の記事 (リンク) では、Xiao Zaojun が ISDN、xDSL、10GPON に至るブロードバンド技術の発展の歴史を紹介しました。今日は、今後の新世代の光ファイバーブロードバンド技術、50GPON についてお話しましょう。 █F5G と F5G-A 50GPON を紹介する前に、F5G と F5G-A について話しましょう。 2020年2月、ETSI(欧州電気通信標準化協会)は、10GPON+FTTR、Wi-Fi6、200G光伝送/アグリゲーション、OXCなどの技術をベースとした固定通信ネットワーク技術体系を推進し、それを第5世代、すなわちF5Gと名付けました。固定ネットワーク通信技術 (第 5 世代固定ネットワーク)。 F5Gは固定ネットワークです

PHP、Vue、React: 最適なフロントエンド フレームワークを選択するには? PHP、Vue、React: 最適なフロントエンド フレームワークを選択するには? Mar 15, 2024 pm 05:48 PM

PHP、Vue、React: 最適なフロントエンド フレームワークを選択するには?インターネット技術の継続的な発展に伴い、フロントエンド フレームワークは Web 開発において重要な役割を果たしています。 PHP、Vue、React は 3 つの代表的なフロントエンド フレームワークであり、それぞれに独自の特徴と利点があります。使用するフロントエンド フレームワークを選択するとき、開発者はプロジェクトのニーズ、チームのスキル、個人の好みに基づいて情報に基づいた決定を下す必要があります。この記事では、PHP、Vue、React の 3 つのフロントエンド フレームワークの特徴と用途を比較します。

ワイヤレスマウスの開発経緯 ワイヤレスマウスの開発経緯 Jun 12, 2024 pm 08:52 PM

原題:「ワイヤレスマウスはどのようにしてワイヤレスになるのか?」 》ワイヤレスマウスは今日のオフィスコンピュータの標準機能となり、今後は長いコードを引きずる必要はなくなります。しかし、ワイヤレスマウスはどのように機能するのでしょうか?今日は、No.1 ワイヤレス マウスの開発の歴史について学びます。ワイヤレス マウスは 1984 年に世界初のワイヤレス マウスを開発しましたが、このワイヤレス マウスは信号として赤外線を使用していたことをご存知ですか?キャリアは下の写真のようになると言われていますが、後にパフォーマンス上の理由で失敗しました。ロジクールがついに 27MHz で動作するワイヤレス マウスの開発に成功したのは、10 年後の 1994 年でした。この 27MHz の周波数も、長い間ワイヤレス マウスとして使用されてきました。

Java フレームワークとフロントエンド React フレームワークの統合 Java フレームワークとフロントエンド React フレームワークの統合 Jun 01, 2024 pm 03:16 PM

Java フレームワークと React フレームワークの統合: 手順: バックエンド Java フレームワークをセットアップします。プロジェクト構造を作成します。ビルドツールを設定します。 React アプリケーションを作成します。 REST API エンドポイントを作成します。通信メカニズムを構成します。実際のケース (SpringBoot+React): Java コード: RESTfulAPI コントローラーを定義します。 React コード: API によって返されたデータを取得して表示します。

ブロードバンド インターネット テクノロジーの簡単な歴史 ブロードバンド インターネット テクノロジーの簡単な歴史 Apr 16, 2024 am 09:00 AM

今日のデジタル時代において、ブロードバンドは私たち一人一人とすべての家族にとって必需品となっています。それがなければ、私たちは落ち着かず、落ち着かなくなるでしょう。では、ブロードバンドの背後にある技術原理をご存知ですか?最初の 56,000 の「猫」ダイヤルアップから現在のギガビット シティやギガビット家庭まで、ブロードバンド テクノロジーはどのような変化を経験しましたか?今日の記事では、「ブロードバンドストーリー」について詳しく見ていきましょう。 █xDSL と ISDN の間のこのインターフェースを見たことはありますか? 70年代、80年代生まれの友人なら観たことがある、よく知っているという人も多いのではないでしょうか。そう、これは私たちが初めてインターネットに触れたときの「ダイヤルアップ」のインターフェースでした。それは20年以上前、シャオ・ザオジュンがまだ大学生だった頃のことだ。インターネットをサーフィンするために、私は

PHP でソケット通信を実装するための方法とテクニック PHP でソケット通信を実装するための方法とテクニック Mar 07, 2024 pm 02:06 PM

PHP は、さまざまな Web アプリケーションの開発に使用できる一般的に使用される開発言語です。一般的な HTTP リクエストとレスポンスに加えて、PHP はソケットを介したネットワーク通信もサポートし、より柔軟で効率的なデータ対話を実現します。この記事では、PHPでソケット通信を実装する方法とテクニックを、具体的なコード例を交えて紹介します。ソケット通信とは ソケットは、異なるコンピュータ間でデータを転送できるネットワーク内の通信方法です。 by S

長白山の主峰は通常通りインターネットにアクセス可能:吉林モバイルとZTEは商用利用向けに2.6G + 700Mの3キャリアアグリゲーションを完成、ピークレートは2.53Gbps以上 長白山の主峰は通常通りインターネットにアクセス可能:吉林モバイルとZTEは商用利用向けに2.6G + 700Mの3キャリアアグリゲーションを完成、ピークレートは2.53Gbps以上 Jul 25, 2024 pm 01:20 PM

7月25日のニュースによると、吉林移動とZTEは長白山の主峰で2.6G周波数帯(100+60M)と700M周波数帯(30M)に基づく3キャリアアグリゲーションの商用利用を完了した。フィールドテストでの速度は 2.53Gbps 以上に達する可能性があります。当局者は、長白山は中国のトップ10の名山の一つであり、現在、国家AAAAAの観光名所、世界地質公園、世界生物圏保護区、そして2023年には世界最高の観光客数を獲得する予定であると指摘した。今回、3CCが導入され、ユーザーのネットワークニーズに大きく応えます。報道によると、吉林移動は2024年初めに2.6G(100+60M)と4.9G(100M)の周波数帯で3キャリアネットワークのキャリアアグリゲーションパイロットを完了し、ダウンロード数がピークに達するという点で主導権を握ったという。

Golang でのポインター変換のベスト プラクティスの例を学ぶ Golang でのポインター変換のベスト プラクティスの例を学ぶ Feb 24, 2024 pm 03:51 PM

Golang は、さまざまなアプリケーションやサービスの開発に使用できる強力で効率的なプログラミング言語です。 Golang では、ポインタは非常に重要な概念であり、データをより柔軟かつ効率的に操作するのに役立ちます。ポインタ変換とは、異なる型間のポインタ操作のプロセスを指します。この記事では、具体的な例を使用して、Golang におけるポインタ変換のベスト プラクティスを学びます。 1. 基本概念 Golang では、各変数にはアドレスがあり、アドレスはメモリ内の変数の位置です。

See all articles