React中super(props)和super()以及不写super()的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React中super(props)和super()以及不写super()的区别相关的知识,希望对你有一定的参考价值。

参考技术A 参考:https://www.cnblogs.com/White1993/p/10516989.html

1.在class方法中,继承是使用extends关键字来实现继承的。子类必须在constructor()中调用super()方法,否则新建实例时会报错。

报错的原因是,子类是没有自己的this对象的,它只能继承父类的this对象,然后对其进行加工,而super()就是将父类中的this对象继承给子类的。没有super,子类就得不到this对象。

2.如果你用到了constructor就必须写super(),是用来初始化this的,可以绑定事件到this上

如果你在constructor中要使用this.props,就必须给super加参数,super(props)

[react] super()和super(props)有什么区别?

[react] super()super(props)有什么区别?

react 中的class 是基于es6的规范实现的, 继承是使用extends关键字实现继承的,子类必须在constructor()中调用super() 方法否则新建实例
就会报错,报错的原因是 子类是没有自己的this对象的,它只能继承父类的this对象,然后对其进行加工,而super()就是将父类中的this对象继承给子类的,没有super() 子类就得不到this对象。

如果你使用了constructor就必须写super() 这个是用来初始化this的,可以绑定事件到this上
如果你想要在constructor中使用this.props,就必须给super添加参数 super(props)
注意,无论有没有 constructor,在render中的this.props都是可以使用的,这是react自动附带的
如果没有用到constructor 是可以不写的,react会默认添加一个空的constroctor.

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论



主目录

与歌谣一起通关前端面试题

以上是关于React中super(props)和super()以及不写super()的区别的主要内容,如果未能解决你的问题,请参考以下文章

react中constructor和super()以及super(props)的区别。

React中constructor(props){}究竟是什么,以及super(props)与super()

React中super(props)和super()以及不写super()的区别

react中constructor和super的使用

[react] 在构造函数中调用super(props)的目的是什么?

为啥react的组件要super