useEffect 与 useLayoutEffect

异同:
  1. useEffect 是异步执行的,而useLayoutEffect是同步执行的。
  2. useEffect 的执行时机是浏览器完成渲染之后,而 useLayoutEffect 的执行时机是浏览器把内容真正渲染到界面之前。
  3. useLayoutEffect  在 useEffect 之前执行  
总结:
  1. 优先使用 useEffect,因为它是异步执行的,不会阻塞渲染。
  2. 会影响到渲染的操作尽量放到 useLayoutEffect中去,避免出现闪烁问题。
  3. useLayoutEffect在服务端渲染的时候使用会有一个 warning,因为它可能导致首屏实际内容和服务端渲染出来的内容不一致。

参考:useEffect和useLayoutEffect的区别_溪宁的博客-CSDN博客_uselayouteffect

你可能感兴趣的:(react,面试,reactHooks,前端,javascript,开发语言,1024程序员节)