react中的constructor方法和super()的理解

初学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函数。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值