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

diy网站源码郑州百度推广公司

diy网站源码,郑州百度推广公司,普定县建设局网站,wordpress增加管理员权限useLayoutEffect钩子函数的作用跟useEffect钩子函数的作用一样,它们的不同主要是在于: 1、useEffect钩子函数是异步的,因为此函数在执行的时候是先计算出所有的 Dom 节点的改变后再将对应的 Dom 节点渲染到屏幕上,然而在 useEffe…

useLayoutEffect钩子函数的作用跟useEffect钩子函数的作用一样,它们的不同主要是在于:

1、useEffect钩子函数是异步的,因为此函数在执行的时候是先计算出所有的 Dom 节点的改变后再将对应的 Dom 节点渲染到屏幕上,然而在 useEffect 函数中可能还存在某些还在后台运行的代码,这些后台代码的运行和 Dom 的渲染是互不影响的,所以这样就有可能在页面渲染效果上会有元素抖动的情况发生。

2、useLayoutEffect钩子函数是同步的,在性能上会比较差,但是它是等到所有计算完成、所有代码完成后最后才会去渲染 Dom 节点。

具体实例如下:

const UseLayoutEffectDemo: React.FC = () => {const [show, setShow] = useState<boolean>(false);const popup = useRef<HTMLDivElement>(null);const button = useRef<HTMLButtonElement>(null);useEffect(() => {if (popup.current === null || button.current === null) {return;} else {const { bottom } = button.current.getBoundingClientRect();popup.current.style.top = `${bottom + 25}px`;}});return (<div><button ref={button} onClick={() => setShow((prev) => !prev)}>切换状态</button>{show && (<div style={{ position: "absolute" }} ref={popup}>这是显示内容</div>)}</div>);
};

运行上述代码后,当你点击切换状态状态按钮后,这是显示内容的 div 元素会首先在按钮后显示,但是很快就会向下偏移 25px 的距离。因为当show发生改变后,div 已经开始显示,而随后useEffect监听到有变化后就开始执行代码,等到执行完成后,Dom 会重新渲染。这样 div 元素就会有抖动,只是这个抖动发生的很快。

为了防止上述的情况发生,我们可以把useEffect钩子函数改为useLayoutEffect钩子函数,这样 Dom 的渲染是等到所有相关操作都完成后才会进行 Dom 的渲染。

http://www.mmbaike.com/news/41596.html

相关文章:

  • 滨州正规网站建设公司百度地址
  • 工业互联网平台分类seo搜索优化公司排名
  • 有域名怎么建设网站企业管理咨询培训
  • 做动效网站网站设计论文
  • 做网站的关键词长沙网络优化产品
  • 如何做网站用户活跃度百度网页搜索
  • wordpress底部插件汕头网站快速优化排名
  • 旅游网站设计说明seo图片优化
  • 帝国网站管理系统如何做商城快速开发平台
  • 企业官网建设 创意网站建设厦门人才网个人版
  • 从化网站建设公众号怎么开通
  • 如何根据仿站做网站网站统计哪个好用
  • 上海营销型网站建站seo博客写作
  • 建造自己的网站网站seo李守洪排名大师
  • 做网站是三网合一有什么优势企业查询网
  • 湛江本地做网站附近的电脑培训班在哪里
  • 为什么做动漫短视频网站企业培训的目的和意义
  • 定制vx怎么弄搜索引擎优化网站
  • 做网站设计哪家好微博推广方法有哪些
  • dede手机网站模板哦亚马逊关键词优化软件
  • 餐饮行业网站建设关键词搜索引擎工具
  • 做民宿的网站武汉seo霸屏
  • 商城网站是免费开吗网站排名优化培训哪家好
  • 电子网站建设策划模板百度推广好做吗
  • 网站模板分类营销顾问公司
  • 用服务器ip做网站模板免费下载网站
  • 网站群 主要功能怎么把广告发到各大平台
  • 简单网页模板下载优化大师app下载
  • 131美女做爰视频网站淮北网络推广
  • php网站开发外文翻译无忧seo博客