setState -> const [state, setState] = useState()
componentDidMount -> useEffect(() => {}, [])
componentDidMount & componentDidUpdate -> useEffect(() => {}, [props.changedValue]
componentWillUnmount & componentDidUnmount -> useEffect(() => { return () => console.log('Cleaning up') }, [])
shouldComponentUpdate -> export default React.memo(myComponent, () => console.log('finer grain control here, but I work opposite to shouldComponentUpdate. Usually out of the box memoization is good enough')