首先要了解react创建组件的三种方法:
- 函数式无状态组件
- ES5方式 React.createClass 创建组件
- ES6方式 extends React.Component
在这里详细介绍一下ES6 创建react组件
首先要了解一下ES6中的class 。在calss方法中,继承是使用extends关键字来实现的。子类必须在constructor()调用super()方法,否则新建实例时会报错。
报错的原因是:子类是没有自己的this对象的,它只能继承自父类的this对象,然后对其进行加工,而super()就是将父类中的this对向继承给子类的。没有super,子类就得不到this对象。
constructor() ------构造方法
这是ES6对类的默认方法,通过new命令生成对象实例时调用该方法。并且,该方法是类中必须有的,如果没有显示定义,则会默认添加空的constructor()方法
super(props) -----super() -----以及不写super的区别 --------------继承
如果用到constructor就必须写super()是用来初始化this的,可以绑定事件到this上
如果在constructor 中使用this.props,就必须给super加参数 super(props)
如果没有用到constructor是可以不写的;react会默认添加一个空的constructor
(无论有没有constructor,在render中this.props都是可以使用的,这是React
自动附带的)