Nach this babel Dokumentation, die richtige Art und Weise mit ES6 + zu verwenden Reagieren auf Ausgangskomponenten ist wie folgt:Ist es besser, den Status im Konstruktor zu definieren oder Eigenschaftsinitialisierungen zu verwenden?
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 React DnD Modul verwendet ES6 + sondern definiert noch Staat innerhalb der Konstruktor:
constructor(props) {
super(props);
this.moveCard = this.moveCard.bind(this);
this.state = {
// state stuff
}
}
Jetzt Dan Abramov, einen bedeutenden Beitrag zu sein, weiß wahrscheinlich zu reagieren, dass er Staat außerhalb der Konstruktor definieren, noch setzt sie noch im Konstruktor zu tun.
Also frage ich mich nur, welcher Weg besser ist und warum?
Es gibt keine schlechte oder gute, sie sind gleichwertig, es ist eine Frage der Präferenz –
Klasse Eigenschaften sind ein ** Vorschlag **. Sie sind ** nicht ** Teil von ES7. Bitte lesen Sie mindestens die Beschreibung des Tags: [tag: ecmascript-7]. –