React组件之间传值

React 的组件通信可分为以下三种情况

  1. 父级组件 -> 子集组件
  2. 子集组件 -> 父级组件
  3. 兄弟组件(同级组件)
  4. 无特定关系组件

    一 、 父级组件 -> 子集组件

 var ChildComponent = React.createClass({
            getInitialState:function(){
                return {
                    show:true
                }
            },
            render:function(){
                console.log(this.props.title)
                var st=this.props.shows;
                var show=st?'showClass':'hideClass';
                return (
                    <div>
                        <span>{this.state.show}</span>
                        <div className={show}></div>
                    </div>
                )
            }
        });
        var ParentComponent = React.createClass({
            getInitialState:function(){
                return {
                    parentcomponet:true
                }
            },
            statusHandler:function(){
                this.setState({parentcomponet:!this.state.parentcomponet})
            },
            render:function(){

                return (
                    <div>
                        <ChildComponent title="gg" shows={this.state.parentcomponet}></ChildComponent>
                        <button onClick={this.statusHandler}>点击</button>
                    </div>
                )
            }
        });
        ReactDOM.render(
        <ParentComponent></ParentComponent>
        ,
        document.getElementById('app')

        );

如上父级组件向子集通信 通常使用 props

有一个明显的缺陷,当组件层级较深时,props 的传递成本就明显较高,不建议react 的层级过多(尽量减少层级,或者控制组件层级在一定范围内)

###二 、 子集组件 -> 父级组件
“`
var ParentComponent = React.createClass({
getInitialState: function () {
return {
checked: false,
parent:’0’
};
},
onChildChanged: function (newState) {
this.setState({
checked: newState
});
console.log(this.state);
},
render: function() {
var isChecked = this.state.checked ? ‘yes’ : ‘no’;
return (


Are you checked: {isChecked}

兄弟组件(同级组件)

其实很简单 把上两种数据传递结合起来就是第三种
组件之间是相互独立的
基本数据流 是
子组件1 -> 父组件 -> 子组件

无特定关系组件

设置全局广播事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值