初学react,谈一谈对reactreact中的constructor方法和super()的理解~
constructor(props) {
super(props) {
}
}
super关键字,它指代父类的实例(即父类的this对象)。子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其加工。如果不调用super方法,子类就得不到this对象
如果你用到了constructor就必须写super(props),是用来初始化this的,可以绑定事件到this上
constructor(props) {
super(props)
this.add = this.add.bind(this)
}
如果没用到constructor,是可以不写的,react会默认添加一个空的constructor
无论有没有constructor,在render中this.props都是可以使用的,这是react自动附带的
如果子类没有定义constructor方法,这个方法会被默认添加,
也就是说,不管有没有显示定义,任何一个子类都有constructor方法。
如果组件要定义自己的state初始状态的话,需要写在constructor方法中,
constructor(props) {
super(props)
//初始化状态
this.state = {
todolist:['吃饭','睡觉','打豆豆']
}
}
如果没有state,就可以不用constructor函数。