高级前端
react
【Q653】useLayoutEffect 和 useEffect 有什么区别

useLayoutEffect 和 useEffect 有什么区别

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 671 (opens in a new tab)

Author 回答者: shfshanyue (opens in a new tab)

TODO

Author 回答者: illumi520 (opens in a new tab)

dom 时间,一个是之前,一个是之后

Author 回答者: luoheix (opens in a new tab)

可以参考:useEffect 和 useLayoutEffect 的区别 - 掘金 (opens in a new tab)useEffect和useLayoutEffect到底有什么区别? (opens in a new tab) 这两篇文章

  • useLayoutEffect 和 componentDidMount 和 componentDidUpdate 触发时机一致(都在在 DOM 修改后且浏览器渲染之前);
  • useLayoutEffect 要比 useEffect 更早的触发执行;
  • useLayoutEffect 会阻塞浏览器渲染,切记执行同步的耗时操作