React中组件的props属性传递机制

29 篇文章 1 订阅
React中组件的属性传递机制,由父组件传递给子组件,不能跨级传递。当有多个组件嵌套时,从最外层的祖先组件的props开始,依次向其后代组件传递props。

本例组件嵌套顺序:Person——》Adult——》Child,写代码的时候先写内层组件

body部分代码:
<body>
    <!-- 由父元素的属性,传递给子元素。即祖先元素的属性依次传递给后代元素的属性 -->
    <div id="ele"></div>
</body>
注意script标签的type要设置为type=“text/babel”,以解析JSX

(1) Child组件,里面放入三个p标签,显示name,age,sex

class Child extends React.Component{
    render(){
        return(
            <div>
                <p>{this.props.name}</p>
                <p>{this.props.age}</p>
                <p>{this.props.sex}</p>
            </div>
        )
    }
}

(2)Adult组件

 class Adult extends React.Component{
    render(){
        return(
          <Child name={this.props.name}
                age={this.props.age}
                sex={this.props.sex}/>
        )
    }
}

(3)Person组件,和Adult组件类似,这里使用了扩展运算符,可以将属性一一对应起来。

// {...this.props}扩展赋值,一一对应
class Person extends React.Component{
    render(){
        return(
            <Adult
            {...this.props}
            />
        )
    }
}
完整js代码:
<script type="text/babel">
class Child extends React.Component{
    render(){
        return(
            <div>
                <p>{this.props.name}</p>
                <p>{this.props.age}</p>
                <p>{this.props.sex}</p>
            </div>
        )
    }
}
class Adult extends React.Component{
    render(){
        return(
            <Child name={this.props.name}
                age={this.props.age}
                sex={this.props.sex}/>
        )
    }
}
// {...this.props}扩展赋值,一一对应
class Person extends React.Component{
    render(){
        return(
            <Adult
            {...this.props}
            />
        )
    }
}
//传参
ReactDOM.render(<Person name="Lily" age="12" sex="female"/>,document.getElementById("ele"))
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清颖~

您的鼓励让我们一起进步,加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值