1.通过标签属性从组件外向组件内传递变化的数据。
2.组件标签的所有属性都保存在props中。
3.每个组件对象都会有props(properties)属性。
4.props只读,组件内部不要修改props数据。
5.用解构赋值批量传输属性:{...P}
- 展开运算符不能展开对象
- 由于React和jsx,导致可以在标签属性传递时展开对象
6.js代码必须写在{ }中。
- age={18}
7.限制传递的props:对组件标签属性进行限制
- 限制语句如果写在class外面,要写类名
Person.propTypes = {
name:PropTypes.string.isRequired, //限制name必传,且为字符串
sex:PropTypes.string,//限制sex为字符串
age:PropTypes.number,//限制age为数值
speak:PropTypes.func,//限制speak为函数
}
//指定默认标签属性值
Person.defaultProps = {
sex:'男',//sex默认值为男
age:18 //age默认值为18
}
- 限制语句如果写在class里面、render外面,要写static关键词
//对标签属性进行类型、必要性的限制
static propTypes = {
name:PropTypes.string.isRequired, //限制name必传,且为字符串
sex:PropTypes.string,//限制sex为字符串
age:PropTypes.number,//限制age为数值
}
//指定默认标签属性值
static defaultProps = {
sex:'男',//sex默认值为男
age:18 //age默认值为18
}
8.由于函数能接收参数,porps收集好了所有标签属性,所以函数式组件可以使用props属性。