Rumah pembangunan bahagian belakang tutorial php React组件之间的通信的实例

React组件之间的通信的实例

Jun 28, 2017 pm 03:39 PM
react Contoh komunikasi

本篇文章主要介绍了React组件间通信的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近学习浅尝则止的学习了一下react.js这个UI的框架,react这个库给我的最大的感觉就是它能够完全的接管UI层,在要改变视图的东西的时候只需要改变其this.state中的状态。只要操作数据层的东西视图层就会发生变化,这一点我还是很喜欢的。可以摆脱对DOM的直接操作,毕竟直接来会比较复杂,本来应该是逻辑层js中混杂着各种css的字符串,对于我来说有点不爽(JSX中也混杂这标签,但我觉的不应该把它看作标签,看作语句会习惯一点)。

回到几天的重点,讲react组件之间的状态传递。

上代码:

1.定义两个子组件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>
   }

  }
Salin selepas log masuk


2.定义父组件Parent并且将两个子组件插入到父组件中


class Parent extends React.Component{
   constructor(...args){
    super(...args);
   }
   render(){
    return(
     <p>
      <Input}/>
      <Show/>
     </p>
    );
   }
  }
Salin selepas log masuk


现在的任务是在组件1总输入一些文字,同时在组件2中同时显示出来。

分析:要让组件2与组件1同步,就让组件1和2都去绑定父组件的状态。也就是说让两个组件受控。数据的走向是,组件1将自身的数据提升到父层,并且保存在父层的状态中。父层中的数据通过组件2中的props属性传递到组件2中,并在视图层进行绑定。

第一步先绑定组件


//在父层中的constructor中定义状态为一个空的message,this.state = {message:&#39;&#39;}
class Parent extends React.Component{
  constructor(...args){
   super(...args);
   this.state = {
    message:&#39;&#39;
   }
Salin selepas log masuk


然后在父组件中的改为


<Show onShow={this.state.message}/>
Salin selepas log masuk


接着来我们进入到组件中,给其内容绑定这个穿件来的onShow属性。组件变为


class Show extends React.Component{
  constructor(...args){
   super(...args);
  }
  render(){
   return <p>{this.props.onShow}</p>
  }
Salin selepas log masuk


这样组件2显示层的数据已经绑定好了,接下来我们只要改变父亲层状态中的message的内容就可以使绑定的显示层的内容跟着一起变化

将输入层的状态(数据)提升到父亲组件中.下面是改写后的组件1


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}/>
  }
 }
Salin selepas log masuk


看到这里可能会有一个问题:onInp()和content没有啊?不要急,接着看

接着改写父组件中的输入层子组件1,


class Parent extends React.Component{
  constructor(...args){
   super(...args);
   this.state = {
    message:''
   };
  }
  //传进的text是其提升上来的状态,然后再更新父组件的状态
  fn(text){
   this.setState({
    message:text
   })
  }
  render(){
   return(
    

/* onInp就出现在这里,并绑定一个函数, 并且有一个content将父组件的状态同步到子组件中 */ <Show onShow={this.state.message}/>

); } }
Salin selepas log masuk


写完的代码是这样的


// 父组
 class Parent extends React.Component{
  constructor(...args){
   super(...args);
   this.state = {
    message:''
   };
  }
  onInp(text){
   this.setState({
    message:text
   })
  }
  render(){
   return(
    

<Show onShow={this.state.message}/>

); } } //child-1 class Input extends React.Component{ constructor(...args){ super(...args); } fn(ev){ this.props.onInp(ev.target.value); } render(){ return } } //child-2 class Show extends React.Component{ constructor(...args){ super(...args); } render(){ return <p>{this.props.onShow}</p> } } //最后渲染出 ReactDOM.render( , document.getElementById('app') );
Salin selepas log masuk


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Atas ialah kandungan terperinci React组件之间的通信的实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Generasi baharu teknologi jalur lebar gentian optik - 50G PON Generasi baharu teknologi jalur lebar gentian optik - 50G PON Apr 20, 2024 pm 09:22 PM

Dalam artikel (pautan) sebelum ini, Xiao Zaojun memperkenalkan sejarah pembangunan teknologi jalur lebar daripada ISDN, xDSL kepada 10GPON. Hari ini, mari kita bercakap tentang generasi baharu teknologi jalur lebar gentian optik-50GPON yang akan datang. █F5G dan F5G-A Sebelum memperkenalkan 50GPON, mari kita bincangkan dahulu tentang F5G dan F5G-A. Pada Februari 2020, ETSI (European Telecommunications Standards Institute) mempromosikan sistem teknologi rangkaian komunikasi tetap berdasarkan 10GPON+FTTR, Wi-Fi6, transmisi/pengagregatan optik 200G, OXC dan teknologi lain, dan menamakannya F5G. Itu merupakan generasi kelima tetap teknologi komunikasi rangkaian (The5thgenerationFixednetworks). F5G ialah rangkaian tetap

PHP, Vue dan React: Bagaimana untuk memilih rangka kerja bahagian hadapan yang paling sesuai? PHP, Vue dan React: Bagaimana untuk memilih rangka kerja bahagian hadapan yang paling sesuai? Mar 15, 2024 pm 05:48 PM

PHP, Vue dan React: Bagaimana untuk memilih rangka kerja bahagian hadapan yang paling sesuai? Dengan pembangunan berterusan teknologi Internet, rangka kerja bahagian hadapan memainkan peranan penting dalam pembangunan Web. PHP, Vue dan React ialah tiga rangka kerja bahagian hadapan yang mewakili, masing-masing mempunyai ciri dan kelebihan tersendiri. Apabila memilih rangka kerja bahagian hadapan yang hendak digunakan, pembangun perlu membuat keputusan termaklum berdasarkan keperluan projek, kemahiran pasukan dan pilihan peribadi. Artikel ini akan membandingkan ciri dan penggunaan tiga rangka kerja bahagian hadapan PHP, Vue dan React.

Sejarah pembangunan tetikus tanpa wayar Sejarah pembangunan tetikus tanpa wayar Jun 12, 2024 pm 08:52 PM

Tajuk asal: "Bagaimanakah tetikus wayarles menjadi wayarles?" 》Tetikus wayarles secara beransur-ansur menjadi ciri standard komputer pejabat hari ini, kita tidak perlu lagi menyeret kord panjang. Tetapi, bagaimanakah tetikus wayarles berfungsi? Hari ini kita akan belajar tentang sejarah pembangunan tetikus wayarles No.1 Tahukah anda bahawa tetikus wayarles kini berusia 40 tahun Pada tahun 1984, Logitech membangunkan tetikus wayarles pertama di dunia, tetapi tetikus wayarles ini menggunakan inframerah sebagai isyarat? pembawa dikatakan kelihatan seperti gambar di bawah, tetapi kemudiannya gagal kerana sebab prestasi. Sehingga tahun 1994, sepuluh tahun kemudian, Logitech akhirnya berjaya membangunkan tetikus wayarles yang berfungsi pada 27MHz Frekuensi 27MHz ini juga menjadi tetikus tanpa wayar untuk masa yang lama.

Penyepaduan rangka kerja Java dan rangka kerja React bahagian hadapan Penyepaduan rangka kerja Java dan rangka kerja React bahagian hadapan Jun 01, 2024 pm 03:16 PM

Penyepaduan rangka kerja Java dan rangka kerja React: Langkah: Sediakan rangka kerja Java bahagian belakang. Buat struktur projek. Konfigurasikan alat binaan. Buat aplikasi React. Tulis titik akhir REST API. Konfigurasikan mekanisme komunikasi. Kes praktikal (SpringBoot+React): Kod Java: Tentukan pengawal RESTfulAPI. Kod tindak balas: Dapatkan dan paparkan data yang dikembalikan oleh API.

Sejarah ringkas teknologi Internet jalur lebar Sejarah ringkas teknologi Internet jalur lebar Apr 16, 2024 am 09:00 AM

Dalam era digital hari ini, jalur lebar telah menjadi satu keperluan bagi setiap daripada kita dan setiap keluarga. Tanpanya, kita akan resah dan gelisah. Jadi, adakah anda tahu prinsip teknikal di sebalik jalur lebar? Daripada dial-up 56k "kucing" terawal ke bandar Gigabit semasa dan rumah Gigabit, apakah jenis perubahan yang telah dialami oleh teknologi jalur lebar kami? Dalam artikel hari ini, mari kita lihat dengan lebih dekat "Kisah Jalur Lebar". Pernahkah anda melihat antara muka ini antara █xDSL dan ISDN? Saya percaya ramai rakan-rakan yang lahir pada tahun 70-an dan 80-an pasti pernah melihatnya dan sangat mengenalinya. Betul, ini adalah antara muka untuk "dial-up" semasa kami mula-mula bersentuhan dengan Internet. Itu lebih daripada 20 tahun yang lalu, ketika Xiao Zaojun masih di kolej. Untuk melayari Internet, saya

Kaedah dan teknik untuk melaksanakan komunikasi Soket dalam PHP Kaedah dan teknik untuk melaksanakan komunikasi Soket dalam PHP Mar 07, 2024 pm 02:06 PM

PHP ialah bahasa pembangunan yang biasa digunakan yang boleh digunakan untuk membangunkan pelbagai aplikasi web. Selain permintaan dan respons HTTP biasa, PHP juga menyokong komunikasi rangkaian melalui Soket untuk mencapai interaksi data yang lebih fleksibel dan cekap. Artikel ini akan memperkenalkan kaedah dan teknik bagaimana untuk melaksanakan komunikasi Soket dalam PHP, dan melampirkan contoh kod tertentu. Apa itu Socket Communication Socket ialah kaedah komunikasi dalam rangkaian yang boleh memindahkan data antara komputer yang berbeza. oleh S

Puncak utama Gunung Changbai boleh mengakses Internet seperti biasa: Jilin Mobile dan ZTE melengkapkan pengagregatan tiga pembawa 2.6G + 700M untuk kegunaan komersial, dengan kadar puncak lebih daripada 2.53Gbps Puncak utama Gunung Changbai boleh mengakses Internet seperti biasa: Jilin Mobile dan ZTE melengkapkan pengagregatan tiga pembawa 2.6G + 700M untuk kegunaan komersial, dengan kadar puncak lebih daripada 2.53Gbps Jul 25, 2024 pm 01:20 PM

Menurut berita pada 25 Julai, Jilin Mobile dan ZTE telah menyelesaikan penggunaan komersial pengagregatan tiga pembawa berdasarkan jalur frekuensi 2.6G (100+60M) dan jalur frekuensi 700M (30M) di puncak utama Gunung Changbai kadar dalam ujian lapangan boleh mencapai lebih daripada 2.53Gbps. Pegawai menyatakan bahawa Gunung Changbai adalah salah satu daripada sepuluh gunung terkenal di China Ia kini menjadi tarikan pelancong AAAAA negara, taman geologi dunia, rizab biosfera dunia, dan rizab alam semula jadi terbaik di dunia pada tahun 2023 akan mencapai 2.7477 juta, dan 3CC akan digunakan kali ini. Ia akan sangat memenuhi keperluan rangkaian pengguna. Menurut laporan, Jilin Mobile telah menerajui dalam melengkapkan perintis pengagregatan pembawa bagi rangkaian tiga pembawa dalam jalur frekuensi 2.6G (100+60M) ditambah 4.9G (100M) pada awal 2024, dengan muat turun puncak

Ketahui contoh amalan terbaik penukaran penunjuk di Golang Ketahui contoh amalan terbaik penukaran penunjuk di Golang Feb 24, 2024 pm 03:51 PM

Golang ialah bahasa pengaturcaraan yang berkuasa dan cekap yang boleh digunakan untuk membangunkan pelbagai aplikasi dan perkhidmatan. Di Golang, penunjuk ialah konsep yang sangat penting, yang boleh membantu kami mengendalikan data dengan lebih fleksibel dan cekap. Penukaran penunjuk merujuk kepada proses operasi penunjuk antara jenis yang berbeza Artikel ini akan menggunakan contoh khusus untuk mempelajari amalan terbaik penukaran penunjuk di Golang. 1. Konsep asas Di Golang, setiap pembolehubah mempunyai alamat, dan alamat adalah lokasi pembolehubah dalam ingatan.

See all articles