当前位置: 首页 > news >正文

中企动力网站模板长沙优化科技

中企动力网站模板,长沙优化科技,wordpress图纸管理网站,优化大师win10下载1、概述 useLayoutEffect 是useEffect 的一个衍生版本#xff0c;只是他们的执行时机不同 useLayoutEffect 用于在DOM更新执行完成之后#xff0c;浏览器渲染绘制之前执行#xff0c;这会阻塞浏览器的渲染#xff1b; useEffect 的执行时机是在组件首次渲染和更新渲染之后…1、概述 useLayoutEffect 是useEffect 的一个衍生版本只是他们的执行时机不同 useLayoutEffect 用于在DOM更新执行完成之后浏览器渲染绘制之前执行这会阻塞浏览器的渲染 useEffect 的执行时机是在组件首次渲染和更新渲染之后异步执行的这就意味着 useEffect 的执行并不会阻塞组件的渲染也不会影响到用户的交互体验 由于useEffect 执行的的异步操作那么在其副作用函数中执行数据请求、DOM操作、定时任务即使有大量的计算耗时也不会让用户感觉到界面卡顿现象 而useLayoutEffect 执行的是同步操作不适用于大量耗时的进程在副作用函数中执行否则会是界面显的非常卡顿从而影响用户的体验感 useEffect具体使用详情 2、写法 useLayoutEffect(setup, dependencies)第一个参数setup处理副作用的函数在将组件首次添加到 DOM 之前React 将运行 setup 函数。在每次因为依赖项变更而重新渲染后React 将首先使用旧值运行 cleanup 函数如果你提供了该函数然后使用新值运行 setup 函数。在组件从 DOM 中移除之前React 将最后一次运行 cleanup 函数。 第二个参数依赖项数组与 useEffect的依赖项一样为可选项 useLayoutEffect(() {console.log(设置函数)// 用于根据依赖项变化而执行的逻辑return () {// 清理函数组件卸载移除时执行的逻辑} },[name])3、用法示例 当我们使用 useEffect 将一个圆形由直径 10px,变大到 直径为200px时会看到 图形的变化整个过程 而我们使用 useLayoutEffect 时直接看到的就是 直接为 200px 的圆形不会看到图片变化过程给用户的感觉视图的白屏时间更长体验不好 /* index.less文件 */ .base-class{display: block;width: 10px;height: 10px;background-color: #f00;border-radius: 50%;position:relative; } .area-box{width: 200px;height: 200px; }3.1 使用 useEffect Hook时 是异步执行不会阻塞浏览器渲染故可以看见图形变化过程 import {useState, useEffect } from react import ./index.lessexport default function MyLayoutEffect() {const [area, setArea] useState(false)const handleChangeArea () {setArea(false)}// 使用时间延迟let now performance.now()while (performance.now() - now 200) {}useEffect(() {setArea(true)}, [area])return (divspan className{area ? base-class area-box : base-class}useEffect圆的面积/spanhr /pareaLayout:---{areaLayout}----/phr / button onClick{handleChangeArea}改变圆形面积/button/div) } 3.2、使用 useLayoutEffect 时 无论我们是点击按钮改变原型大小还是初次加载屏幕中始终的 直径为 200px 的圆形这是因为 useLayoutEffect 的状态更新会在屏幕渲染之前执行进而导致阻塞渲染而一直看到都是大图 import {useState, useLayoutEffect} from react import ./index.lessexport default function MyLayoutEffect() {const [areaLayout, setAreaLayout] useState(false)const handleChangeArea () {setAreaLayout(false)}let now performance.now()while (performance.now() - now 200) {}useLayoutEffect(() {setAreaLayout(true)}, [areaLayout])return (divpareaLayout:---{areaLayout}----/pspan className{areaLayout ? base-class area-box : base-class}useLayoutEffect/spanhr / hr /button onClick{handleChangeArea}改变圆形面积/button/div) } 4、使用场景 1、需要在屏幕渲染完成之前 获取元素DOM的位置尺寸同步进行调整 2、防止闪屏因useLayoutEffect 会在浏览器渲染前计算好 元素的位置大小故不会像 useEffect会看见视图元素 位置大小变化过程但是如果时间过短会给用户一种闪屏的错觉
http://www.dnsts.com.cn/news/145351.html

相关文章:

  • 东莞企业网站建设价格网店出租网站程序
  • 做网站方面黑糖不苦还做网站么
  • 绘画做动作的网站广电网络公司优秀营销案例
  • 物流企业网站源码京东优惠券网站怎么做
  • 自学网站建设需要什么学历网站建站收费
  • 做分销网站系统下载网站建设套餐报价方案
  • 二级网站有什么好处做影视网站什么cms好用
  • 学网站开发学费多少网站推广计划怎么做
  • 想学做网站从哪里入手微网站管理平台
  • 百度站长平台网页手机下载ps软件免费版
  • 网站规划课程设计模板wordpress 早期文章
  • 网站留言板功能网站的基本价格
  • 浙江中联建设集团网站网站建设用素材
  • 做网站送的手机站是什么做中文网站的公司
  • 简单网站html模板下载大型企业策划咨询公司
  • 工业设计 做自己的网站 知乎成都网站建设易维达好
  • 自建网站工具wordpress 并发量
  • 网站建设与管理 十四五国规教材花都网站 建设信科网络
  • 网站开发都做什么医院网站模板下载
  • 网站建设系统服务卢龙网站建设
  • 广东微信网站制作多少钱四平建设局网站
  • wordpress建站空间推荐wordpress默认登陆地址修改
  • 网站如何排名搭建一个自己的网站
  • 沈阳网站优化推广方案企业网站建设服务公司
  • 怎么做能够让网站流量大定制网站模板
  • 龙井网站建设营销外包团队有哪些
  • 网站建设包含图文设计宁波网站搭建
  • 网站扩容需要多少钱百度搜索app免费下载
  • 网站开发软件有免费网页设计
  • 织梦农家乐网站模板广州微信网站建设咨询