执行时期的区别useEffect 回调函数的执行时期useEffect为异步执行,执行时期为
- 触发状态更新(如:setState,forceUpdate)
- React渲染函数执行(render)
- 将更新渲染到页面上
- 执行useEffect回调函数
- 触发更新
- React渲染函数执行
- 同步执行 useLayoutEffect回调函数 (如果此函数中存在 触发更新操作 , 如setState,会放弃本阶段的页面渲染,先执行更新然后再统一进行渲染)
- 将更新渲染到页面上
- 执行时期的区别,useEffect回调是在更新渲染到页面以后异步执行 而 useLayoutEffect是在更新渲染在页面前同步执行 。造成的影响是,useLayoutEffect 回调中如果有耗时操作会阻塞页面的渲染,造成性能问题 。
- 两者中如果调用setState更新状态,都会再次执行render , 区别是 useEffect会进行两次页面更新渲染,useLayoutEffect只会执行最后一次页面更新渲染 。所以,看到的结果是使用useEffect时候执行更新页面上会出现闪烁,而useLayoutEffect确不会
- useLayoutEffect 的执行时期 同 class组件生命周期 componentDidMount 和 componentDidUpdate
【useEffect 和 useLayoutEffect浅析】
推荐阅读
- iQOONeo5S和iQOONeo5se哪款好-iQOO对比评测
- 苹果13和13pro有什么区别_苹果13和13pro详细对比
- 伊朗综合国力究竟有多强? 伊朗的人口和国土面积
- 做什么和怎么做的区别(会做事和能做事的区别)
- .Net CLR GC plan_phase二叉树和Brick_table
- 分布式存储系统之Ceph集群CephX认证和授权
- 华为MateBook 13s和14s区别_哪款更值得入手
- opporeno5k和reno5有什么区别_opporeno5k和reno5一样吗
- 怎么了和为什么的区别(细菌感染和病毒感染的区别)
- 干嘛和怎么了的意思有什么区别(咋的了和怎么了是一个意思吗)