React-组件通讯

React-组件通讯

(1)父组件 -> 子组件
(2)子组件 -> 父组件
(3)兄弟组件
(4)Contxt

【1】父组件 -> 子组件

(1)父组件提供要传递的state数据
(2)给子组件标签添加属性,值为state中的数据
(3)子组件通过props接收到父组件中传递的数据
class Parent ectends React.Component{
state = {lastName:'王'}
	renser(){
		return(
			<div>
				传递数据给子组件
				<Chind name={this.state.lastName} />
			</div>
		)
	}
}

const Child = (props)=>{
	return(
		<div>
			子组件接收到数据
			{props.name}
		</div>
	)
}

【2】子组件 -> 父组件

利用回调函数,父组件提供回调,子组件调用,将要传递的数据作为回调函数的参数
(1)父组件提供一个回调函数(用于接收数据)
(2)将函数作为属性的值,传递给子组件
class Parent extends React.Component{
getChildMsg = (msg) =>{
	console.log('接收到子组件数据',msg)
}
render(){
	return(
		<div>
			子组件
			<Chind getMsg={this.getChildMsg} />
		</div>
	)
}
}

【3】兄弟组件

状态提升:将共享状态提升到最近的公共组件中,由公共父组件管理这个状态
公共父组件职责:
		a,提供共享状态
		b,提供操作共享状态的方法
要通讯的子组件只需要通过props接受状态或操作状态的方法

【4】Contxt

跨组件传递数据(主题,语言)
(1)调用React.createContext()创建Provider(提供数据)和Consumer(消费数据)两个组件
	const {Provider,Consumer} = React.createContext()
(2)使用Provider组件作为父节点
<Provider>
			<div className="App">
				<Child1 />
			</div>
		</Provider>
(3)设置value属性,表示传递的数据
	<Provider value="pink">
(4)调用Consumer组件接收数据
	<Consumer>
		{data => <span>data参数表示接收到的数据--{data}</span>}
	</Consumer>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CaoPengCheng&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值