react为什么要用constructor?

1,382 阅读1分钟

首先说一点,ES5和ES6的继承机制不同,ES5的继承实质是通过,先创建子类的实例this,然后再将父类的方法添加到子类实例this上面,也就是说,ES5中,每一个实例是有自己的this的,而到了ES6中,继承机制变成了,先创建父类的实例this,然后子类去修改父类的this实现继承,因此要想在ES6中实现继承,需要使用super去引用父类的构造函数。在react中,如果没有显式的去定义constructor方法,在执行的时候,constructor也会被添加,这样一来,任何一个子组件无论有没有显式的定义,都有constructor方法,因此constructor方法的定义并不是必须的。但是,如果不使用constructor,组件无法使用state,打印的state始终都是null,也就是说,如果使用无state组件,可以不使用constructor,只通过props来接收值(这个时候就建议使用无状态组件了),这种主要作用是模板,和只接收父元素的值得情况;如果要用state,需要把this. state写到constructor里面,

详情链接如下:好文要转:

www.cnblogs.com/faith3/p/92…