何时在React组件中使用构造函数?

Cyv*_*val 8 javascript ecmascript-6 reactjs

我总是编写React代码,特别是在ES6类中.但我的问题是,我们什么时候constructor(props)在React Components中使用?该constructor(props)行是否与组件的渲染及其道具有关?

sdg*_*uck 8

接受的答案是不正确的(可能只是滥用"渲染"一词).

正如我在其评论中解释的那样,React组件的构造函数在第一次组装或实例化时执行.在后续渲染中永远不会再调用它.

通常,构造函数用于设置组件的内部state,例如:

constructor () {
  super()
  this.state = {
    // internal state
  }
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您具有可用的类属性语法(例如,通过Babel),您可以放弃声明构造函数,如果您正在使用它是为了初始化状态:

class Example extends React.Component {
  state = {
    // internal state
  }
}
Run Code Online (Sandbox Code Playgroud)

构造函数(props)行是否与组件的呈现及其道具有关?

构造函数不直接指示组件呈现的内容.

组件呈现的内容由其render方法的返回值定义.