¿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é.

Respuestas a la pregunta(3)

Su respuesta a la pregunta