React-组件通讯

Posted CaoPengCheng&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

以上是关于React-组件通讯的主要内容,如果未能解决你的问题,请参考以下文章

React7.组件间的通讯

React7.组件间的通讯

React 组件间通讯

React-组件通讯

react浅探react父子组件通讯(函数组件为例)

react浅探react父子组件通讯(函数组件为例)