每天对自己多问几个为什么,总是有着想象不到的收获。 一个菜鸟小白的成长之路(copyer)
相同点:
都是接受一个函数,一个数组作为参数,但数组里面发生变化的时候,才会重新执行函数
不同点:
useEffect
函数是异步执行的,useLayoutEffect
是同步执行的useEffect
的执行时机是浏览器完成渲染之后,而useLayoutEffect
的执行时机是浏览器把内容真正渲染到界面之前,和componentDidMount
等价。
useLayoutEffect的现象
useLayoutEffect
增加了首次渲染的白屏时间
useEffect的现象
useEffect
是渲染完之后异步执行的,所以会导致 hello world 先被渲染到了屏幕上,再变成 world hello,就会出现闪烁现象
博客: