title: Which one is called first? constructor or componentDidMount or Render
body: <p>As i've read online and official documentation. Order is 
  Constructor-> ComponentWillMount -> Render -> ComponentDidMount and others.</p>
  
  <pre><code>class Navigation extends Component {
      constructor(props) {
          super(props);
          console.log('constructor', this);
          this.state = { items: [ ] };
      }
  
  componentDidMount() {
      console.log('componentDidMount');
  
      if ( toDisplay( ) ) {
          api.bringCats()
          .then( categories =&gt; {
              const tot_cat = categories.map( cat =&gt; { return {name: cat.name, link: cat.link}; })
              this.setState({items: tot_cat,})
          })
      }
  }
  
  render() { 
      console.log("render")
      //some stuff
  }
  }
  </code></pre>
  
  <blockquote>
    <p>im expecting the the log to be in this order
    1. constructor
    2. ComponentDidMount
    3. render</p>
  </blockquote>
  
  <p>im logging <code>this</code> with <code>constructor</code> inside constructor method. im able to get value for <code>items</code> which is getting its value in <code>componentDidMount</code> why this is happening? and its logging in the correct order (constructor->didmount->render) but why im getting value of <code>items</code> even before calling <code>componentDidMount</code>.</p>
  
  <p>im using <code>&lt;Navigation/&gt;</code> component inside <code>&lt;Header/&gt;</code> </p>
  
  <pre><code>Header extends Component{
  render(){
    return (&lt;div&gt; &lt;Navigation/&gt; &lt;/div&gt;);
  }
  }
  </code></pre>