react组件通信

本文介绍了四种组件间的通信方式:父组件向子组件的props传递,子组件通过回调函数与父组件交互,兄弟组件通过状态提升,以及使用React的ContextAPI实现祖先后代通信。强调了props的只读性及单项数据流原则。
摘要由CSDN通过智能技术生成

组件之间通信一共有几种方式:

 1. 父组件向子组件通信

  1) 在父组件中定义状态

  2) 在子组件标签上放置自定义属性(自动生成props对象)

  3) 在类组件中通过this获取props对象(props对象是固定的)

  4)    在函数组件中通过形参获取属性,形参可以自定义(推荐使用props)

           注意:  

                1)  props是只读对象(readonly)

                     根据单项数据流的要求,子组件只能获取props,不可以修改props

                2)props是可以传任何值

2. 子组件向父组件通信

父组件提供回调函数,通过 props 传递给子组件

子组件触发父组件传递的回调函数传递数据给父组件

父组件数据更新后,传递给子组件的数据自动更新

3. 兄弟之间通信

核心:通过状态提升机制 ,利用共同的父组件进行传递

需要通讯的组件通过 props 接收状态和函数

4. 祖先后代通信

使用createContext()创建一个上下文对象

使用 Provider 包裹组件,value 属性注入状态,函数,被包裹组件下的任何组件可以使用。

使用 Consumer 消费 Provider 提供的数据和函数,语法{ value => 使用数据和函数 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值