Ist es besser, den Status im Konstruktor zu definieren oder Eigenschaftsinitialisierer zu verwenden?

GemäßDie babel Dokumentation, die richtige Art, ES6 + mit React zu verwenden, besteht darin, Komponenten wie diese zu initialisieren:

class Video extends React.Component {
  static defaultProps = {
    autoPlay: false,
    maxLoops: 10,
  }
  static propTypes = {
    autoPlay: React.PropTypes.bool.isRequired,
    maxLoops: React.PropTypes.number.isRequired,
    posterFrameSrc: React.PropTypes.string.isRequired,
    videoSrc: React.PropTypes.string.isRequired,
  }
  state = {
    loopsRemaining: this.props.maxLoops,
  }
}

Aber einige offizielle Beispiele, wie Dan Abramovs eigenesReact DnD -Modul, verwendet ES6 +, definiert jedoch den Status im Konstruktor:

constructor(props) {
    super(props);
    this.moveCard = this.moveCard.bind(this);
    this.state = {
       // state stuff
    }
}

Jetzt weiß Dan Abramov, der einen wichtigen Beitrag zu React leistet, wahrscheinlich, dass er den Status außerhalb des Konstruktors definieren kann, und entscheidet sich dennoch dafür, ihn innerhalb des Konstruktors zu tun.

So frage ich mich nur, welcher Weg besser ist und warum?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage