Ist es besser zu definieren, Staat im Konstruktor oder über die Eigenschaft Initialisierungen?

Laut diese babel-Dokumentation für den richtigen Weg, um ES6+ mit Reagieren ist zum ersten Komponenten wie diese:

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 Abramov eigenen Reagieren DnD Modul verwendet ES6+ aber immer noch definiert Staat innerhalb des Konstruktors:

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

Nun Dan Abramov, wird ein wesentlicher Beitrag zu Reagieren, weiß wahrscheinlich, dass er definieren kann, Stand außerhalb des Konstruktors, aber immer noch entscheidet sich, es zu tun, innerhalb des Konstruktors.

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

  • Es gibt keine schlechte oder gute, sind Sie gleichwertig, das ist eine Frage der Präferenz
  • Eigenschaften der Klasse sind ein Vorschlag. Sie sind nicht Teil des ES7. Bitte Lesen Sie die tag-Beschreibung mindestens: ecmascript-7.
InformationsquelleAutor abustamam | 2016-06-13
Schreibe einen Kommentar