React学习笔记——组件间通信
适用于刚开始接触react直接上手的同学,建议还是打好JS和ES6基础。
基础
父传子
子传父
兄弟组件传递
进阶(待完成)
不太相关组件之间传递
redux
ref
context
observer pattern
全局变量
基础内容
(1)父传子:可以通过props将父组件数据传给子组件
function Parent(){
return (
)
}
function Child(props){
return
}
ReactDOM.render(, document.getElementById("root"));
如上所示,
上面这段的props为{name:"child"}如果不太明白props的话可以看下面这段。
、
(2)子传父:可以通过继承父组件的函数来改变父组件的状态。(回调函数,事件)
也需要父组件向子组件传递 props 进行通讯,只是父组件传递的,是作用域为父组件自身的函数,子组件调用该函数,将子组件想要传递的信息,作为参数,传递到父组件的作用域中。
有两种传递方式:
方法一:直接调用父组件的方法
方法二: 先调用自身的方法,再调用父组件的方法
class Parent1 extends React.Component{
constructor(props){
super(props);
this.state ={
msg:'父类消息',
}
}onButtonClick = (msg) => {
this.setState({msg: '子类信息'})
}
render(){
return ( 子传给我的信息:{this.state.msg}
{/*方法一调用方式*/}
{/*方法二调用方式 */}
)
}
}
// 方法一:直接调用父组件的方法
function Child1(props){
return
}//方法二:先调用自身的方法,再调用父组件的方法
function Child2(props){
childClickHandle = (msg) =>{
this.props.onButtonClick(msg);
//这个onButtonClick对应 中第一个onButtonClick
}
return
}ReactDOM.render(, document.getElementById("root"));
文章图片
(3)兄弟组件传值(子传给父,父再传给另一个子),一般来说,两个非父子组件想要通信,首先我们可以看看它们是否是兄弟组件,即它们是否在同一个父组件下。如果不是的话,考虑下用一个组件把它们包裹起来从而变成兄弟组件是否合适。这样一来,它们就可以通过父组件作为中间层来实现数据互通了。
class Parent extends React.Component {
constructor(props) {
super(props)
this.state = {count: 0}
}
setCount = () => {
this.setState({count: this.state.count + 1})
}
render() {
return ();
}
}const SiblingA = (props) => {
return
}const SiblingB = (props) => {
return
}ReactDOM.render(【React学习笔记——组件间通信】,
document.getElementById('root')
);
进阶内容
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习