react学习(13)props

简介: react学习(13)props

知识点
1:props的基本使用类似于标签的属性,只要在组件标签的地方写上key和value,组件实例的props就会收集到。

<script type="text/babel">
        class Person extends React.Component {
   
            render(){
   
                return (
                    <ul>
                        <li>姓名:{
   this.props.name}</li>
                        <li>年龄:{
   this.props.age}</li>
                        <li>性别:{
   this.props.sex}</li>
                    </ul>
                )
            }
        }
        ReactDOM.render(<Person name="tom" age="18" sex="女"/>,document.getElementById('test'));
        ReactDOM.render(<Person name="jerry" age="19" sex="男"/>,document.getElementById('test1'));
    </script>

2:批量传递props

let p = {
   name:'tom',age:18,sex:'女'};
ReactDOM.render(<Person {
   ...p}/>,document.getElementById('test'));

注意:此处的{...p}并不是复制克隆对象的意思,就是展开传入,但是只能在组件标签这里使用,其他地方都不能这么写。
3:对props进行限制:需要引入一个js库

<script src="../js/prop-types.js"></script>
    <script type="text/babel">
        class Person extends React.Component {
   
            render(){
   
                return (
                    <ul>
                        <li onClick={
   this.props.speak}>{
   this.props.name}</li>
                        <li>{
   this.props.age}</li>
                        <li>{
   this.props.sex}</li>
                    </ul>
                )
            }
        }
        //限制类型:名字必填,年龄为数字,默认18,性别默认男
        Person.propTypes = {
   
            name:PropTypes.string.isRequired,
            sex:PropTypes.string,
            age:PropTypes.number,
            speak:PropTypes.func
        }
        Person.defaultProps = {
   
            sex:'男',
            age:18
        }
        ReactDOM.render(<Person name='tom' age={
   19} sex="女" speak={
   speak}/>,document.getElementById('test'));
        function speak(){
   
            console.log('说话了');
        }
   </script>

注意:函数类型要写成:func。
4:props是只读的,不允许修改。
5:props的简写形式,其实是把类型限制移动到Person内部,也是直接使用赋值语句,只是前面需要加上static,如果不加static的话相当于是加到类实例的身上。

相关文章
|
1天前
|
前端开发
react学习(17)回调形式的ref
react学习(17)回调形式的ref
|
2天前
|
前端开发
react学习(15)函数式组件中使用props
react学习(15)函数式组件中使用props
|
1天前
|
存储 前端开发 容器
react学习(18)createRef形式的ref
react学习(18)createRef形式的ref
|
2天前
|
前端开发
react学习(14)类式组件的构造器与props
react学习(14)类式组件的构造器与props
|
5天前
|
前端开发 JavaScript 中间件
react学习(11)
react学习(11)
|
5天前
|
前端开发 JavaScript
react学习(10)
react学习(10)
|
6天前
|
前端开发
react学习(9)
react学习(9)
|
5天前
|
前端开发
react学习(12)
react学习(12)
|
1月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
39 0
|
2月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
35 1