zoukankan      html  css  js  c++  java
  • react组件通信props属性传递

    props属性传递

            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}
    />
    )
    }
    }

    <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"))

  • 相关阅读:
    MTD NANDFLASH驱动相关知识介绍
    Java 根据当前时间获取明天、当前周的周五、当前月的最后一天
    使用 Spring 进行单元测试
    Centos下MySQL主从同步配置
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
    CentOS 7 配置静态IP
    mysql 配置 utf8 依然乱码
    rabbitMQ Connection timed out
    CentOS 7.0,启用iptables防火墙
    linux注销、关机、重启
  • 原文地址:https://www.cnblogs.com/zhouyideboke/p/12598301.html
Copyright © 2011-2022 走看看