执行时期的区别useEffect 回调函数的执行时期useEffect为异步执行,执行时期为
- 触发状态更新(如:setState,forceUpdate)
- React渲染函数执行(render)
- 将更新渲染到页面上
- 执行useEffect回调函数
- 触发更新
- React渲染函数执行
- 同步执行 useLayoutEffect回调函数 (如果此函数中存在 触发更新操作,如setState,会放弃本阶段的页面渲染,先执行更新然后再统一进行渲染)
- 将更新渲染到页面上
- 执行时期的区别,useEffect回调是在更新渲染到页面以后异步执行 而 useLayoutEffect是在更新渲染在页面前同步执行 。造成的影响是,useLayoutEffect 回调中如果有耗时操作会阻塞页面的渲染,造成性能问题 。
- 【useEffect 和 useLayoutEffect浅析】两者中如果调用setState更新状态,都会再次执行render,区别是 useEffect会进行两次页面更新渲染,useLayoutEffect只会执行最后一次页面更新渲染 。所以,看到的结果是使用useEffect时候执行更新页面上会出现闪烁,而useLayoutEffect确不会
- useLayoutEffect 的执行时期 同 class组件生命周期 componentDidMount 和 componentDidUpdate
经验总结扩展阅读
- 如何区分过敏和感冒
- 冬奥会和夏奥会几年一次
- 哨子面和臊子面的区别
- 关于单反光圈和快门
- 清水泥和紫泥的区别
- 威朗gs和威朗什么区别
- iQOONeo5S和iQOONeo5se哪款好-iQOO对比评测
- 苹果13和13pro有什么区别_苹果13和13pro详细对比
- 伊朗综合国力究竟有多强? 伊朗的人口和国土面积
- 祖逖闻鸡起舞典故