Лучше определить состояние в конструкторе или с помощью инициализаторов свойств?

В соответствии сэтот В документации Babel, правильный способ использования ES6 + с React - это начальные компоненты, подобные этим:

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,
  }
}

Но некоторые официальные примеры, такие как собственные Дана АбрамоваРеагировать на DnD модуль, использует ES6 +, но все еще определяет состояние в конструкторе:

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

Теперь Дэн Абрамов, являясь важным участником React, вероятно, знает, что он может определять состояние вне конструктора, но все же предпочитает делать это внутри конструктора.

Так что мне просто интересно, какой путь лучше и почему?

Ответы на вопрос(3)

Ваш ответ на вопрос