ReactJS:在组件类中不需要构造函数的一些标准是什么?

时间:2017-09-21 14:48:57

标签: javascript reactjs constructor stateless component-design

我想知道组件的类声明中不需要构造函数的条件。我认为它适用于无状态组件,但还有其他原因吗?组件内部没有任何功能(除了生命周期功能)是一个,例如?

3 个答案:

答案 0 :(得分:2)

我认为从react docs(强调我的)中摘录一下是合适的:

  

构造函数是初始化状态的正确位置。 如果你不   初始化州并且您不会绑定方法,您不需要   为您的React组件实现构造函数。

答案 1 :(得分:0)

如果组件在使用之前需要设置内部状态,我通常只添加一个构造函数,否则我会省略构造函数。在组件中具有功能并不会影响我在这方面的决定

答案 2 :(得分:0)

如果使用babel stage-2预设,在任何情况下根本不需要构造函数,因为它提供了有效替换其用法的类属性:

#content

变为

class Component extends React.Component {
  constructor() {
    this.state = {};
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() { console.log('click'); }
}

忽略这一点,只有在需要将组件方法绑定到其上下文或者需要初始化class Component extends React.Component { state = {}; handleClick = () => console.log('click'); } 属性时才需要构造函数。

另一种情况是,如果您需要对state类属性执行某些操作,但这被React视为反模式。

this.props