useLayoutEffect与useEffect都是在render后执行,并且先同步执行useLayoutEffect,后异步执行useEffect
重点:在render的内容呈现在用户眼睛前会同步执行useLayoutEffect,所以useLayoutEffect里设置的state才是用户直接会看到的实际内容(无视render里state的默认值)
在useLayoutEffect中,可以获得准确的dom更新后的诸如clientHeight,offsetHeight值
视频讲解
React中的useEffect和useLayoutEffect 你真的搞懂了吗,这是个经典的面试题_哔哩哔哩_bilibili