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