useEffect

componentDidMount 是用于在 mount 过程结束的副作用

componentDidUpdate 是用于在 update 过程结束的副作用

useEffect = componentDidMount + componentDidUpdate

useEffect 模拟 componentDidMount

useEffect(()=>{
// 每次 mount 或者 update 都会调用这里
})
useEffect(()=>{
// 只有 mount 时会调用这里
},[])

useEffect 模拟 componentDidUnmount

useEffect(()=>{
// 只有 mount 时会调用这里
	return ()=>{
		// 只有 unmount 时会调用这里
	}
},[])

useEffect 模拟 componentDidUpdate

const mounted = useRef();
useEffect(()=>{
	if(!mounted.current){
		mounted.current = true;
	}else{
		// do componentDidUpdate logic
	}
})