title: React lifecycle methods
body: <p>I have been doing react for a while and am familiar with some lifecycle methods but not so familiar with others</p>
  
  <p>e.g. <code>didMount</code> is clearly for ajax requests or calling data from an api then loading it into the app</p>
  
  <p>I think I have conquered <code>shouldComponentUpdate</code>, and have realised it is purely there for performance</p>
  
  <p>but <code>static getDerivedStateFromProps</code> I cant really get my head around. is that for performance or does that add something else to the app?</p>
  
  <p>and also <code>componentDidUpdate</code>, is this for performance again or where is a good example where I can use these?</p>
  
  <p>clearly some methods are necessary to perform actions and actual requests. clearly some are there to improve performance etc. just would like to get some context around <code>didUpdate</code> and <code>getDerived</code></p>
  
  <p>thanks</p>