学习React hook API

React hook API

useEffect(异步执行)

`useEffect`: 是在浏览器完成绘制后异步执行的;
所以如果你在 `useEffect` 中改变了 DOM,可能会造成用户看到的画面闪烁或者不一致

useLayoutEffect(同步执行)

`useLayoutEffect` 是在浏览器完成布局,但在绘制之前执行的。也就是说,它允许你在浏览器开始绘制之前,同步地读取 DOM 布局并使更改。这意味着,如果你在 `useLayoutEffect` 中修改了 DOM(例如,改变一个元素的宽高),则这些更改将在下一次用户看到的画面中反映出来。

使用场景:
1.读取或修改布局相关的 DOM 属性:如元素的宽高,位置等。因为`useLayoutEffect` 在浏览器布局后立即执行,因此能保证获取到最新的 DOM 信息,避免由于 DOM 信息不一致导致的布局抖动。

2.在某些需要同步执行副作用的情况下:比如需要在用户点击按钮后立即改变按钮样式的情况。因为 `useEffect` 是异步执行的,可能会导致视觉上的延迟
相关推荐
木觞清1 小时前
Django学习第三天
python·学习·django
强迫老板HelloWord5 小时前
前端JS特效第22波:jQuery滑动手风琴内容切换特效
前端·javascript·jquery
luanluan88886 小时前
维护el-table列,循环生成el-table
javascript·vue.js·ecmascript·element plus
续亮~6 小时前
9、程序化创意
前端·javascript·人工智能
muren6 小时前
昇思MindSpore学习笔记2-01 LLM原理和实践 --基于 MindSpore 实现 BERT 对话情绪识别
笔记·深度学习·学习
这是另一个世界7 小时前
黑客技术大纲
网络·学习·web安全·网络安全
38kcok9w2vHanx_7 小时前
从0开始搭建vue项目
前端·javascript·vue.js
国中之林7 小时前
【qt】如何获取本机的IP地址?
服务器·qt·网络协议·学习·tcp/ip
2301_807353407 小时前
v-if条件渲染及v-show的选择
前端·javascript·vue.js
此恨无穷7 小时前
关于umjs的主题切换实现
javascript