É melhor definir o estado no construtor ou usar inicializadores de propriedades?
De acordo comesta Na documentação do babel, a maneira correta de usar o ES6 + com o React é inicializar componentes 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,
}
}
Mas alguns exemplos oficiais, como o de Dan AbramovReagir DnD módulo, usa ES6 +, mas ainda define o estado no construtor:
constructor(props) {
super(props);
this.moveCard = this.moveCard.bind(this);
this.state = {
// state stuff
}
}
Agora Dan Abramov, sendo um colaborador significativo do React, provavelmente sabe que ele pode definir o estado fora do construtor, mas ainda assim opta por fazê-lo dentro do construtor.
Então, eu só estou me perguntando qual caminho é melhor e por quê?