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的话相当于是加到类实例的身上。

相关文章
|
2月前
|
前端开发 JavaScript
React学习之——条件渲染
【10月更文挑战第16天】React 中没有像Vue中v-if这种指令。React 中的条件渲染和 JavaScript 中的一样,使用 JavaScript 运算符 if 或者条件运算符去创建元素来表现当前的状态,然后让 React 根据它们来更新 UI。
|
3月前
|
前端开发 JavaScript
学习react基础(3)_setState、state、jsx、使用ref的几种形式
本文探讨了React中this.setState和this.state的区别,以及React的核心概念,包括核心库的使用、JSX语法、类与函数组件的区别、事件处理和ref的使用。
87 3
学习react基础(3)_setState、state、jsx、使用ref的几种形式
|
3月前
|
前端开发
学习react基础(2)_props、state和style的使用
本文介绍了React中组件间数据传递的方式,包括props和state的使用,以及如何在React组件中使用style样式。
39 0
|
1月前
|
前端开发 JavaScript 安全
学习如何为 React 组件编写测试:
学习如何为 React 组件编写测试:
40 2
|
2月前
|
资源调度 前端开发 JavaScript
React进阶学习
React进阶学习
16 1
|
3月前
|
前端开发
React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用
本文介绍了在React项目中如何添加路径别名alias以简化模块引入路径,设置组件props的默认值,以及如何二次封装Ant Design的Modal组件。文章还提供了具体的代码示例,包括配置Webpack的alias、设置defaultProps以及封装Modal组件的步骤和方法。
86 1
React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用
|
2月前
|
JSON 前端开发 JavaScript
React 进阶阶段学习计划
React 进阶阶段学习计划
|
3月前
|
XML JavaScript 前端开发
学习react基础(1)_虚拟dom、diff算法、函数和class创建组件
本文介绍了React的核心概念,包括虚拟DOM、Diff算法以及如何通过函数和类创建React组件。
33 3
|
2月前
|
前端开发 JavaScript CDN
React Props
10月更文挑战第8天
19 0
|
3月前
|
前端开发
react学习(22)高阶函数和函数柯里化
react学习(22)高阶函数和函数柯里化