每个组件对象都会有实例 需求:自定义用来显示一个人员信息的组件props(properties 的简写
属性。组件标签的所有属性都保存在props
中。
- 姓名必须指定,且为字符串类型;
- 性别为字符串类型,如果性别没有指定,默认为男;
- 年龄为字符串类型,且为数字类型,默认值为18;
this.props.name
class Person extends React.Component{
render(){
const {name,age,sex} = this.props
return (
- 姓名:{name}
- 性别:{sex}
- 年龄:{age+1}
)
}
}
通过标签传入属性
- 正常传入
ReactDOM.render(, document.getElementById('test'))
- 扩展属性:将对象的所有属性通过
props
传递
const p = {name:'老刘', age:18, sex:'女'}
ReactDOM.render(, document.getElementById('test'))
对 props 中的属性值进行类型限制和必要性限制
- 第一种方式 (React v15.5 开始已弃用):
Person.propTypes = {
name: React.PropTypes.string.isRequired,
age: React.PropTypes.number
}
- 第二种方式(新):使用
prop-types
库进限制(需要引入prop-types
库 )
Person.propTypes = {
name: PropTypes.string.isRequired,
age: PropTypes.number.
}
默认属性值
Person.defaultProps = {
age: 18,
sex:'男'
}
【React|React组件三大核心属性(二)——props】上面的限制以及默认值,都可以通过
static
关键字写进 Person 类内。比如:
class Person extends React.Component{
static propTypes = {
name: PropTypes.string.isRequired,
age: PropTypes.number.
}
static defaultProps = {
age: 18,
sex:'男'
}
render(){
const {name,age,sex} = this.props
return (
- 姓名:{name}
- 性别:{sex}
- 年龄:{age+1}
)
}
}
推荐阅读
- reactjs|react组件实例对象的三大核心(state,props,refs)
- react|React 组件与组件实例的三大属性
- react技术栈及全家桶|react-router-dom v6 版本使用内容详解
- #|React组件实例的三大属性
- react.js|react-router-dom V6的配置使用
- react|react 路由(react-router-dom 的使用)
- 微信小程序(黑马)|【uniapp小程序】视图容器cover-view
- JS知识总结|【JavaScript复习十八】预解析
- java|含文档+PPT+源码等]精品微信小程序校园第二课堂+后台管理系统|前后分离VUE[包运行成功]计算机毕业设计项目源码Java毕设项目