React 组件通信

本文详细介绍了React中组件间的五种通信方式:父子组件通信、子父组件通信、非父子组件通信、跨组件通信以及多组件状态共享。重点讨论了如何通过props、ref、事件回调以及使用Context API进行数据传递。同时提到了状态管理库如Redux和Mobx在解决多组件状态共享中的应用。
摘要由CSDN通过智能技术生成

React中的组件通信共可以分为5类:

  • 父子组件通信
  • 子父组件通信
  • 非父子组件通信
  • 跨组件通信
  • 多组件状态共享

父组件与子组件通信

父子组件通信:无论父组件传递的是props还是state,子组件都是通过props接收

  • 父组件将自己的状态传递给子组件,子组件当作属性来接收,当父组件更改自己状态 的时候,子组件接收到的属性就会发生改变
  • 父组件利用ref对子组件做标记,通过调用子组件的方法更改子组件的状态,也可以调用子组件的方法

子组件与父组件通信

子父组件通信:父组件传递方法给子组件,子组件掉要父组件传递过来的方法

注意:自己的状态只能自己更改

  • 父组件将自己的某个方法传递给子组件,在方法里可以做任意操作,比如可以更改状态,子组件通过this.props接收到父组件的方法后调用。

非父子通信

非父子组件通信:ref链

ref的绑定方式:

  • ref='xxx 使用:this.refs.xxx访问
    例如:
    <Child chara={
         this.charaHandler} ref='child' name={
         childName} taiji={
         taiji} fn={
         this.zhengrong}></Child>
    
    在这里插入图片描述
    虽然会警告,但是不影响绑定效果,查阅官网:Refs&DOM,可以通过在构造器中创建一个 ref 来存储 DOM 元素
    constructor(){
         
      super()
      //创建一个 ref 
      this.childref = React.createRef();
      this.state = {
         
          taiji:'五角星',
    
      }
      console.log(this)
    }
    
    <Child chara={
         this.charaHandler} ref={
         this.childref} name={
         childName} taiji=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值