zoukankan      html  css  js  c++  java
  • React入门(二)—— Props属性

    本文地址https://www.cnblogs.com/chenzhihong294/p/14330599.html

     
    关于React组件实例中Props属性的使用以及注意事项:
    1、prop-types.js文件引入
    2、prop属性的使用方法
    3、prop中标签属性的类型限制以及默认标签值设定
    4、展开运算符批量传送属性
     
    注意!!!
    现在高版本的React都是将propTypes单独继承为一个js文件用于外部引入,而不是老版本的React.Proptypes.string.xxxxx。   
     <!-- 引入propTypes,用于对组件标签属性进行限制 -->
        <script type="text/javascript" src="../js/prop-types.js"></script>
        <script type="text/babel">
            // 创建组件
            class Person extends React.Component{
                constructor(props){
                    // 构造器是否接收props,是否传递给super,取决于:是否希望在构造器中通过this访问props
                    // 所以,类中的构造器能省略就省略,开发的时候基本不写构造器
                    console.log(props);
                    super(props);
                }
    
                render(){
                    const {name,sex,age} = this.props;
                    // this.props.name = "Jack"; //此行代码会报错,因为props是只读的,不可修改
                    return (
                        <ul>
                            <li>姓名:{name}</li>
                            <li>性别:{sex}</li>
                            <li>年龄:{age}</li>
                        </ul>
                    )
                }
    
    注意!!!
    一定要注意大小写
    将标签属性的限制和默认值设定写在类组件里面,利用static静态修饰,相当于为类自身加属性,而不给类的实例对象加该属性。
                // 对标签属性进行类型、必要性的限制
                static propTypes = {
                    name:PropTypes.string.isRequired, /* 字符串类型,必传 */
                    sex:PropTypes.string,
                    age:PropTypes.number,
                    // speak:PropTypes.func, //限制speak必须为一个函数传递过来
                }
    
                // 指定默认标签属性值
                static defaultProps = {
                    sex:"保密",
                    age:18,
                }
            }
    
            ReactDOM.render(<Person name="Tom"/>,document.getElementById('test1'))
        </script>
  • 相关阅读:
    R学习之——R用于文本挖掘(tm包)
    【转】基于LDA的Topic Model变形
    Windows操作系统实习之读者写者问题
    应用《开场白》ios源码分享
    一个美式英语发音的app开源
    20款优秀的移动产品原型和线框图设计工具
    sqlite 数据库在ios中的使用
    28个UI免费漂亮的切换开关PSD下载
    ios应用程序生命周期
    Ludei HTML5平台将于今年夏季支持WebGL 3D技术
  • 原文地址:https://www.cnblogs.com/chenzhihong294/p/14330599.html
Copyright © 2011-2022 走看看