React组件传参

本文详细介绍了React中父子组件、子父组件以及兄弟组件之间的数据传递方式,包括使用props、自定义事件和Context API。强调了单向数据流的原则,并提到了跨层级通信时如何利用Context创建和使用。
摘要由CSDN通过智能技术生成

父传子:

  • 父组件通过自定义属性提供数据

  • 子组件接收{类组件this.props 函数组件:第一个形参,一般写成props}

  • 传递对象里面的所有属性 <child {...obj} />

注意事项:

1.单向数据流:

  • 父组件修改的数据会影响使用到此数据的子组件

  • 子组件不要直接修改父组件的数据

2.可以传递任意的类型:

  • 传递数字 <child age={18} />

  • 传递字符串等价的两种写法:

<child name='abc' /> <child name={'abc'} />

3.关于constructor:

使用类组件时,如果写了构造函数,应该在constructor中接收props,并将props传递给super,否则无法在构造函数中使用this.props

子传父:

  • 父组件提供修改数据的方法

  • 子组件调用这个方法同时传递实参

  • 父组件的方法里面接收参数,然后做相应的操作

兄弟通信:

  • 把B组件的数据提到公共组件里面面

  • 父组件提供数据和操作数据的方法

  • 父组件的数据提供给B组件,操作数据的方法提供给A组件

  • A组件调用方法的同时并传递参数给父组件,父组件拿到数据做相应操作,数据变了,B组件就变了

跨层级通信:

  • 祖先组件通过 React.crateContext() 创建 Context 并导出。

  • 祖先组件通过 <Context.Provider> 配合 value 属性提供数据。

  • 后代组件通过 <Context.Consumer> 配合函数获取数据。

  • 优化:提取 React.crateContext() 到单独的文件里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值