React组件中的constructor和super

框架

浏览数:330

2019-8-24

关于constructor和super的小问题

1.是否有必要写constructor()?

constructor()是ES6写法所特有的, 代替了ES5的 getDefaultProps(){} , getInitialState(){}如果你需要设置默认的状态就要写

2.super()要不要传 props ?

constructor() 必须配上 super(), 如果要在constructor 内部使用 this.props 就要传入props , 否则不用

3.绑定事件到底要不要在构造函数constructor()中进行?

js的bind 每次都会返回一个新的函数, 为了性能等考虑, 要在constructor中绑定事件

4.什么情况下在constructor()中初始化事件 和 初始化状态?

比如:input 需要一个默认value的时候, 你就要 初始化状态了

5.super中的props是否必要? 作用是什么?

可以不写constructor,一旦写了constructor,就必须在此函数中写super(),此时组件才有自己的this,在组件的全局中都可以使用this关键字,否则如果只是constructor 而不执行 super() 那么以后的this都是错的!

作者:sxuan