title: Is it better to define state in constructor or using property initializers?
body: <p>According to <a href="https://babeljs.io/blog/2015/06/07/react-on-es6-plus" rel="noreferrer">this</a> babel documentation, the correct way to use ES6+ with React is to initial components like this:</p>
  
  <pre><code>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,
    }
  }
  </code></pre>
  
  <p>But some official examples, like Dan Abramov's own <a href="https://github.com/gaearon/react-dnd/blob/master/examples/04%20Sortable/Simple/Container.js" rel="noreferrer">React DnD</a> module, uses ES6+ but still defines state within the constructor:</p>
  
  <pre><code>constructor(props) {
      super(props);
      this.moveCard = this.moveCard.bind(this);
      this.state = {
         // state stuff
      }
  }
  </code></pre>
  
  <p>Now Dan Abramov, being a significant contributor to React, probably knows that he can define state outside the constructor, yet still opts to do it within the constructor. </p>
  
  <p>So I'm just wondering which way is better and why?</p>