¿Es mejor definir el estado en el constructor o usar inicializadores de propiedades?
De acuerdo aesta documentación de babel, la forma correcta de usar ES6 + con React es con componentes iniciales como este:
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,
}
}
Pero algunos ejemplos oficiales, como el de Dan AbramovReaccionar DnD módulo, usa ES6 + pero aún define el estado dentro del constructor:
constructor(props) {
super(props);
this.moveCard = this.moveCard.bind(this);
this.state = {
// state stuff
}
}
Ahora, Dan Abramov, siendo un contribuyente significativo a React, probablemente sabe que puede definir el estado fuera del constructor, pero aún así opta por hacerlo dentro del constructor.
Entonces, me pregunto qué camino es mejor y por qué.