Props和插槽
# children属性
children属性:表示该组件的子节点,只要组件有子节点,props就有该属性children属性与普通的props一样,值可以是任意值
可以充当 vue 里 插槽 的作用
组件-插槽 : Dialog.js
return (
<div>
<div>this.props.title('默认值')</div>
<div>this.props.children</div>
</div>
)
1
2
3
4
5
6
2
3
4
5
6
父组件-使用 : index.js
return (
<Dialog title={(value)=><h4>值为:{value}</h4>}>
<input type="text"/>
</Dialog>
)
1
2
3
4
5
2
3
4
5
# propTypes校验
对传递的数据类型进行校验
- 导入
prop-types包 - 使用
组件名.propTypes = {}来给组件添加校验规则 - 校验规则通过
PropTypes对象来指定
import propTypes from "prop-types"
Son.propTypes = {
money:PropTypes.number,
list:PropTypes.array
}
1
2
3
4
5
6
2
3
4
5
6
约束规则
- 常见类型:
array、bool、func、number、object、string - React元素类型 :
element - 必填项:
isRequired - 特定结构的对象:
shape({})
Son.propTypes = {
money:PropTypes.number.isRequired,
list:PropTypes.aray,
car:Proptypes.shape({
brand:PropTypes.string.isRequired
price:PropTypes.number.isRequired
})
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
组件 - 传值
state = {
car:{
brand:'abc',
price:100
}
}
<Son money={100} list{[]} car = {this.state.car}></Son>
1
2
3
4
5
6
7
2
3
4
5
6
7
# props默认值
Son.defaultProps = {
money:0,
list:[]
}
1
2
3
4
2
3
4
# 类的静态成员
//实例成员:通过实例调用的属性或方法
//静态成员:通过类或者构造函数本身才能访问的属性和方法
编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48