set initial react component state in constructor or componentWillMount?

In the constructor is preferable when using ES6 classes, but don't use the setState API, rather do like so:

export default class MyComponent extends React.Component{
  constructor(props){
    super(props);
    this.state = { key: value };
  }
}

Also, if you have class properties available to you (babel stage 1) then you can do the following:

export default class MyComponent extends React.Component{
  state = { key: value };

  render() {
    ....
  }
}