title: Is there a reason people prefer using the constructor of a React component instead of componentWillMount?
body: <p>I find that using the lifecycle method <code>componentWillMount</code> to setup initial state...</p>
  
  <pre><code>componentWillMount() {
    this.state = {
      comments: []
    };
  }
  </code></pre>
  
  <p>...is slightly simpler than using the constructor. Namely because when you use the constructor you <em>have</em> to call <code>super()</code>.</p>
  
  <pre><code>constructor() {
    super();
    this.state = {
      comments: []
    };
  }
  </code></pre>
  
  <p>Not only that but if your component is passed <code>props</code> and/or <code>state</code> then you have to manually pass those through as well.</p>
  
  <pre><code>constructor(props, state) {
    super(props, state);
    ...
  }
  </code></pre>
  
  <p>I haven't had any problems using <code>componentWillMount</code> but I virtually never see anyone using it for setting up state (unless they are avoiding es6 and don't have classes). I get that we have access to the constructor in an es6 class, but why use it when you have to wire a manual passthrough to the parent constructor and there is a perfectly good lifecycle method ready and waiting so you don't have to do that?</p>
  
  <p>Just curious if there was an actual practical reason or if it's mostly just preference.</p>