react因为组件化,使得组件间通信十分的重要。本文就来简单介绍一些常见的react组件间传递的内容。
我将归纳为以下几种关系来详述:父组件与子组件之间,子组件与父组件之间,发布者与订阅者模式(context),兄弟组件间,redux也是一种组件管理的方法,但是redux状态管理的内容比较多,这里只做简单介绍,之后再另开一篇详述。
父组件向子组件通信
react的数据流是单向的,最常见的就是通过props由父组件向子组件传值。
示例(关键部分有注释):
我们做一个简单的选择商品,然后改变价格的事例。
父组件:
父组件就是两个按钮,用来切换商品的价格,其中引用了子组件。
class Parents extends Component {
//构造函数
constructor() {
super();
// 设置state
this.state = {
price: 0
};
}
clickGoods(e) {
//更新state
this.setState({
price: e
});
}
// 渲染
render() {
let {
price } = this.state;
return (
<div>
<button onClick={
this.clickGoods1.bind(this)}>goods1</button>
<button onClick={
this.clickGoods2.bind(this)}>goods2</button>
// 父组件中 <Child price={price} />
</