学习React hook API

React hook API

useEffect(异步执行)

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

useLayoutEffect(同步执行)

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

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

2.在某些需要同步执行副作用的情况下:比如需要在用户点击按钮后立即改变按钮样式的情况。因为 `useEffect` 是异步执行的,可能会导致视觉上的延迟
相关推荐
whuhewei9 小时前
JS获取CSS动画的旋转角度
前端·javascript·css
蓝黑20209 小时前
Vue组件通信之v-model
前端·javascript·vue
charlie1145141919 小时前
通用GUI编程技术——图形渲染实战(二十九)——Direct2D架构与资源体系:GPU加速2D渲染入门
开发语言·c++·学习·架构·图形渲染·win32
像素之间10 小时前
为什么运行时要加set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve
前端·javascript·vue.js
CheerWWW10 小时前
C++学习笔记——线程、计时器、多维数组、排序
c++·笔记·学习
M ? A10 小时前
Vue转React实战:defineProps精准迁移实战
前端·javascript·vue.js·经验分享·react.js·开源·vureact
克里斯蒂亚诺·罗纳尔达10 小时前
智能体学习16——学习与适应(Learning-and-Adaptation)-深入解读
深度学习·学习·机器学习
如意猴10 小时前
【前端】002--怎样制作一个简历界面?
开发语言·前端·javascript
comerzhang65510 小时前
手撕 V8:我是如何用 2.67ms 的心跳活捉 700ms 冻结幽灵的
javascript
im_AMBER10 小时前
手撕发布订阅与观察者模式:从原理到实践
前端·javascript·面试