React尚硅谷020-036(props、ref、受控组件)
}
console.log(sum(1,2,3,4))//10
3.批量传递
const p = {name:‘老刘’,age:18,sex:‘女’}
<Person {…p}>
引入prop-types.js
static propTypes = {}//在类组件中
Person.propTypes = {
name:PropTypes.string.isRequired,
age:PropTypes.number,
//函数为func
}
Person.defaultProps={
sex:‘manandwowan’
}
ReactDOM.render(,document.getElementById(‘root’));
props是只读的
类里加static就是加在类本身,不是加在实例
class Person extends React.Component {
static propTypes = {
name:PropTypes.string.isRequired,
age:PropTypes.number,
}
static defaultProps={
sex:'manandwowan'
}
render() {
console.log(this)
const {name,age,sex} = this.props;
return(
<ul>
<li>{name}</li>
<li>{age+1}</li>
<li>{sex+1}</li>
</ul>
)
}
}
构造函数仅用于以下两种情况
- 通过给this.state赋值对象来初始化内部state。
- 为事件处理绑定实例(bind)
- 如果用了构造器,就必须constructor(props),super(props),才能使用this.props
总之:取决于是否希望在构造器中通过this访问props,开发基本不写
字符串取用是this.refs
字符串的ref过时了,用回调形式的ref或者createRef()
回调形式:
<input type=“text” ref={c=>this.input1=c}/>主要
使用:const {input1} = this
另一种回调:
使用:saveInput=(c)=>{this.input1=c}
createRef:
使用:挂在原型对象 myRef = React.createRef()
取到:this.myRef.current.value
专人专用
请勿过度使用ref,有时候使用event.target就可以,比如input身上onBlur事件
对象篇
模块化编程-自研模块加载器