React组件通信总结

本文总结了React组件间的通信方式,包括父子组件通过props传递数据,子组件通过回调函数或ref回传信息,以及跨层级通信的多种解决方案,如Context、自定义全局变量和事件、以及使用状态管理框架如Redux。
摘要由CSDN通过智能技术生成

react组件通信无非就是这几种情况:父子组件通信、爷孙/祖孙之间通信、兄弟组件通信、其他关系组件通信。

父子组件的通信

父传子

因为 React 的设计实际上就是传递 Props 即可。那么场景体现在容器组件与展示组件之间,通过 Props 传递 state,让展示组件受控。

可以在子组件标签上定义属性将父组件的值传进去,在子组件可以使用props接收传进来的属性值。示例:

function Parent() {
  const [data, setData] = useState(1)
  const change = () => {
    setData(data + 1)
  }
  return (
    <div onClick={change}>
      父传子
      <Child data={data} />
    </div>
  )
}
function Child(props) {
  return (
    <div>
      子组件接收到的值:{props.data}
    </div>)
} 

子传父

有两种方式可以支持子传父,可以使用回调函数与实例函数。

1、使用回调函数

在父组件内定义一个回调函数getChildVal,将这个函数绑定在子组件上通过props传入子组件,当子组件中是事件或者什么时机需要向父组件传值时,在子组件内就可以调用这个函数并传入值,此时定义在父组件的函数被触发,并且可以拿到子组件的传值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值