react中props详解 |
您所在的位置:网站首页 › prop和props › react中props详解 |
1.props的基本使用
react组件之间的传值,是离不开props的 代码展示: export default class Parent extends Component { render() { return ( 我是Parent组件 render() { const {name,age,sex} = this.props return ( 我是A组件 姓名:{name} 年龄:{age} 性别:{sex} ) } }执行结果: 子组件可通过this.props拿到父组件传递过来的参数 2.对props进行限制react中使用prop-types对props的值的类型进行校验 代码如下: import PropTypes from 'prop-types'; export default class Parent extends Component { render() { return ( 我是Parent组件 1}> ) } } class A extends Component { static propTypes = { name:PropTypes.string.isRequired, //限制name必传,且为字符串 sex:PropTypes.string,//限制sex为字符串 age:PropTypes.number,//限制age为数值 }; static defaultProps = { hobbies:"看电视", }; render() { const {name,age,sex} = this.props return ( 我是A组件 姓名:{name} 年龄:{age} 性别:{sex} 爱好:{hobbies} ) } }执行结果: 从执行结果可以看出,对A接收的name做必传限制,和age类型做number限制,如果父组件不传name,并且age数值类型不传number,控制台就会报错提示。并且子组件可以指定默认的props。 3.children propsreact使用children props: 通过组件标签体传入结构 对于这个知识,请参考这篇文章https://www.jianshu.com/p/d1975493b5ea/ 4.render propsreact中使用render props: 通过组件标签属性传入结构, 一般用render函数属性 }> A组件: {this.props.render(内部state数据)} C组件: 读取A组件传入的数据显示 {this.props.data} 具体代码如下: import React, { Component } from 'react' export default class Parent extends Component { render() { return ( 我是Parent组件 name}/>}/> ) } } class A extends Component { state = {name:'tom'} render() { const {name} = this.state return ( 我是A组件 {this.props.render(name)} ) } } class B extends Component { render() { console.log('B--render'); return ( 我是B组件,接收来自A组件的{this.props.name} ) } }执行结果: 通过执行结果可以发现,B组件处于A组件之中,并且成功的拿到了name属性。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |