React教程(四)——组件传值和通信
2018-03-14 17:16
477 查看
组件传值,是react中的重点知识,当然对于初学者,也是难以理解的重点知识。
React有两个特殊概念——props、state。
state用于界面状态管理。
props用于组件传值。它的使用分为两种,一种是父传子,另一种是子传父!
父元素:
子元素:
完整示例如下:
不同的地方在于,父元素向子元素传递下去的是一个方法。然后这个方法在子组件中,被执行!
通过什么样的方式来执行这个方法?当然是事件!!!
父元素中可能是这样的:
在子元素中:第一个时间来触发它。
如果需要一个完整的示例:
React有两个特殊概念——props、state。
state用于界面状态管理。
props用于组件传值。它的使用分为两种,一种是父传子,另一种是子传父!
父传子
父元素传递给子元素,只需要在父元素的对应组件上写上props。然后在子元素直接读取到props。父元素:
<Com title='我是从父元素上传递的值' />
子元素:
render(){ return ( <div>{this.props.title}</div> ) }
完整示例如下:
var Child = React.createClass({
render(){ return ( <div>{this.props.title}</div> ) }
});
var Parrent = React.createClass({
render(){
return (
<div>
<h1>react</h1>
<Child title="我是父元素传递的值" />
</div>
)
}
})
ReactDOM.render(<Parrent />,document.getElementById('root'));
子传父
子组件向父组件传值,传递的方式还是props。不同的地方在于,父元素向子元素传递下去的是一个方法。然后这个方法在子组件中,被执行!
通过什么样的方式来执行这个方法?当然是事件!!!
父元素中可能是这样的:
//js parrent: function(value){ alert(value) } //dom <div> <Child parrent={(value) => this.parrentEvent(value)} /> </div>
在子元素中:第一个时间来触发它。
//js clickEvent: function(){ this.props.parrent('子元素的数据'); } //dom <div onClick={()=>this.clickEvent()}>点击发送给父元素</div>
如果需要一个完整的示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <div id="root"></div> <script type="text/babel"> var Child = React.createClass({ clickEvent: function (data) { this.props.parrent(data) }, render(){ return ( <div> <p>{this.props.title}</p> <button onClick={()=>this.clickEvent(1234)}>发送数据</button> </div> ) } }); var Parrent = React.createClass({ parrentEvent: function (data) { alert(data); }, render(){ return ( <div> <h1>react</h1> <Child parrent={(data)=>this.parrentEvent(data)} title="我是父元素传递的值" /> </div> ) } }) ReactDOM.render(<Parrent />,document.getElementById('root')); </script> </body> </html>
相关文章推荐
- react开发教程之React 组件之间的通信方式
- 使用reflux进行react组件之间的通信
- React入门教程 - 组件生命周期
- React中父子组件间的通信问题
- react没有嵌套关系的组件之间通信方法详解
- React独立组件间通信联动
- React+Reflux 实现组件间通信
- React 组件基本使用(3) ---父子组件之间的通信
- react 组件通信
- React总结(二)-- 组件之间的通信
- react-native组件之间的传值(通信)
- React中文教程 - Advanced Components(组件高级使用)
- React数据流和组件间的通信总结
- React中父子组件间的通信问题
- 通过事件通知 实现react.js组件间通信
- react 父子组件互相通信
- react 实现组件嵌套以及子组件与父组件之间的通信
- react-native使用蚂蚁金服的antd-mobile组件库教程
- React 组件间的通信示例
- ReactNative WebView组件通信