相同点:
处理副作用:函数组件内不允许操作副作用。比如:改变DOM、设置订阅、操作定时器等
底层都是调用mountEffectlmpl方法,基本上可以替换使用
不同点:
useEffect在像素变化之后异步调用,改变屏幕内容可能会造成页面的闪烁
useLayoutEffect在像素变化之前同步调用,可能会造成页面延迟显示,但是不会闪烁:主要用于处理DOM操作、调整样式、避免页面闪烁等。因为是同步执行,所以要避免做大量计算,从而避免造成阻塞。
useLayoutEffect先于useEffect执行