首页 > 其他分享 >useEffect和useLayoutEffect的区别

useEffect和useLayoutEffect的区别

时间:2024-09-10 17:46:14浏览次数:8  
标签:useEffect 浏览器 区别 paint 执行 绘制 useLayoutEffect

它们两个的区别主要是执行时机的不一样,要理解执行时机。首先我们来了解下浏览器的执行流程,dom树和cssom树合并为render树之后,后面的流程概括来说就是layout布局,和paint(绘制,就把最后布局好的树画在屏幕视图上)。

这里直接揭晓答案,useLayoutEffect是在layout之后,paint之前执行的。而useLayoutEffect是paint之后执行的。

看官网还说过useLayoutEffect是同步执行的,useEffect是异步执行的。同步执行,意味着会阻塞浏览器重新绘制屏幕。

useLayout的使用场景:

1. 官网的例子是在浏览器重新绘制屏幕前计算布局,举了一个绘制tooltip的例子。同理,我们也可以想到,只要是与获取元素位置有关的功能的时候,都可以用到useLayoutEffect,但是要注意一点,计算量不能太大,要不会阻塞渲染,有延迟。

2. 如果有时候不想要页面闪烁那一下就是用useLayoutEffect。

 

参考:

【react】useEffect VS useLayoutEffectTLDR; useLayoutEffect 和 u - 掘金 (juejin.cn)

标签:useEffect,浏览器,区别,paint,执行,绘制,useLayoutEffect
From: https://www.cnblogs.com/yaoyu7/p/18406860

相关文章

  • 固态硬盘和机械硬盘区别?固态硬盘和机械硬盘哪个好?
    在当今数据时代,硬盘作为电脑里的存储设备在我们的生活和工作中扮演着十分重要的角色。随着存储技术的进步,市场上出现了两种主流硬盘:固态硬盘和机械硬盘。它们各有优劣,那么二者究竟有什么区别?我们又该如何选择呢?本文将和大家聊一聊固态硬盘和机械硬盘的区别,大家在选择硬盘的时候可以......
  • 固态硬盘和机械硬盘区别?固态硬盘和机械硬盘哪个好?
    在当今数据时代,硬盘作为电脑里的存储设备在我们的生活和工作中扮演着十分重要的角色。随着存储技术的进步,市场上出现了两种主流硬盘:固态硬盘和机械硬盘。它们各有优劣,那么二者究竟有什么区别?我们又该如何选择呢?本文将和大家聊一聊固态硬盘和机械硬盘的区别,大家在选择硬盘的时候可以......
  • [Vue] 高阶组件和套一层父组件的区别
    前言App.vue的套一层布局组件MainLayout,MainLayout做一些统一的布局之外,再做一些子路由相同的逻辑,比如子路由需要权限访问。但是不灵活,如果一堆路由组件中有一个不需要这个功能,就不能通过父组件嵌套统一逻辑。高阶组件比起套一层父组件复用逻辑更灵活一些。高阶组件高阶组......
  • Linux中PATH、 LIBRARY_PATH、 LD_LIBRARY_PATH的区别
    Linux中PATH、LIBRARY_PATH、LD_LIBRARY_PATH的区别_pathlibrary-CSDN博客这里写目录标题1.PATH2.LIBRARY_PATH3.LD_LIBRARY_PATH1.PATHPATH是可执行文件路径命令行中的命令,如ls等等,都是系统通过PATH找到了这个命令执行文件的所在位置,再run这个命令(可执行文件)。所以,PATH......
  • “Interface 和 Type 区别”深度解析
    “Interface和Type区别”深度解析文章目录一、Interface和Type是什么二、如何使用Interface和Type1.定义Interface2.定义Type3.使用Interface和Type4.区别与联系三、Interface和Type二者有哪些区别,分别在哪些场景使用1.区别2.场景......
  • 机器学习和深度学习的区别
    机器学习和深度学习作为人工智能领域的两大重要分支,虽然有着紧密的联系,但在多个方面存在显著的差异。以下将从定义与起源、技术基础、模型复杂度、数据需求、计算资源需求、应用领域以及学习方式与特点等角度,详细阐述机器学习和深度学习的区别。一、定义与起源机器学习:是......
  • NPDP和PMP有啥区别?其实就这个3点
    1、发证机构不同PMP是由项目管理协会PMI发起,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。1999年,中国国际人才交流基金会将项目管理协会制定的《项目管理知识体系指南》和“项目管理专业人士职业资格认证”引入中国。NPDP是由美国产品开发与管理协会PDMA......
  • Flutter provider和 getx 区别
    前沿Provider和GetX是Flutter社区中常用的两种状态管理解决方案。它们各自有不同的特点和使用场景,下面是它们的区别和示例,以便更好地理解和选择适合的状态管理方法。示例:Provider和GetX的使用1.使用Provider的示例假设我们有一个简单的计数器应用,点击按钮时计数......
  • 机器学习和深度学习的区别
    机器学习和深度学习是人工智能领域中的两个重要概念,它们在方法、数据依赖性、特征工程等方面存在显著差异。定义与范围:机器学习:机器学习是一种广义的概念,包括了多种方法和算法,旨在使计算机系统能够通过从数据中学习来做出预测或决策。它属于人工智能的一个分支,通过统计学习......
  • describe、portray和depict的区别
    portray和depict都表示对客观情况进行主观的、感性的描述。他们的区别很细微。portray暗示写这句话的人认为这段描写只是作者的主观认识,不一定代表客观事实。(Thenovel portraysastrongfemalecharacter.小说塑造了一个坚强的女性角色。这是在说,这个女性角色坚强是作者的观......