React学习笔记五-props

本文是React学习笔记的第五篇,主要探讨props的使用,包括基本使用、批量传递(展开运算符的应用)、如何限制props、简写方式、类式组件中的构造器与props,以及函数式组件与props的交互。详细介绍了展开运算符在数组、函数和对象中的应用,并展示了在props中的使用,同时讲解了如何通过propTypes和defaultProps限制和设置props的默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此文章是本人在学习React的时候,写下的学习笔记,在此纪录和分享。此为第五篇,主要介绍react中的props。

目录

1.props的基本使用

 2.props的批量传递

2.1展开运算符的复习

2.1.1数组中的展开运算符

 2.1.2函数中的展开运算符

 2.1.3构造字面量对象时使用展开语法

2.2展开运算符与props 

3.对props进行限制

4.props的简写方式

5.类式组件中构造器和props

6.函数式组件与props

6.1函数式组件中使用props

 6.2函数式组件内限制props

7.props的总结


1.props的基本使用

我们先来写一个小案例,将一个人的姓名,性别和年龄分别以li的形式渲染到页面上,要渲染多个人的。

这时候我先写好类式组件,在render函数内写上const {name,age,sex} = this.props,将实例中的props解构赋值,方便我们构建虚拟dom时候渲染props内的name,age和sex。

最后在ReactDOM.render内,我们写组件名字的时候,在组件内把name,age和sex传进去。

就像是<Person name='张三' sex='男' age='18'/>的形式。如此我们组件创建的实例中的props属性内就存在了name,sex和age三个数据,在render函数生成虚拟dom时会直接拿取props内的数据。

代码如下:

<!-- 准备好容器 -->
    <div id="test1"></div>
    <div id="test2"></div>
    <div id="test3"></div>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
    <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
    <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>

    <script type="text/babel">
        class Person extends React.Component {
            render(){
                console.log(this);//打印this指向的实例对象,查看props属性
                const {name,age,sex} = this.props//解构赋值
                return(//构建虚拟dom
                    <ul>
                        <li>姓名:{name}</li>
                        <li>性别:{sex}</li>
                        <li>年龄:{age}</li>    
                    </ul>
                )
            }
           
        }
        //分别渲染dom到三个容器内
        ReactDOM.render(<Person name='张三' sex='男' age='18'/>, document.getElementById('test1'))
        ReactDOM.render(<Person name='李四' sex='女' age='19'/>, document.getElementById('test2'))
        ReactDOM.render(<Person name='王五' sex='男' age='20'/>, document.getElementById('test3'))
    </script>

效果如下:

 2.props的批量传递

2.1展开运算符的复习

在学习props的批量转递的时候,我们要先复习一下展开运算符,也就是三点运算符。

2.1.1数组中的展开运算符

如下两个数组,展开运算符可以将一个数组中的每一项展开显示,也可以将两个数组拼接在一起成为一个新的数组。

代码如下:

let arr1 = [1, 3, 5, 7, 9]
let arr2 = [2, 4, 6, 8, 10]
console.log(...arr1);//展开数组
let arr3 = [...arr1, ...arr2]
console.log(arr3);//拼接数组

效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊啊啊啊啊威

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值