学习React hook API

React hook API

useEffect(异步执行)

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

useLayoutEffect(同步执行)

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

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

2.在某些需要同步执行副作用的情况下:比如需要在用户点击按钮后立即改变按钮样式的情况。因为 `useEffect` 是异步执行的,可能会导致视觉上的延迟
相关推荐
JamSlade18 分钟前
流式响应 sse 系统全流程 react + fastapi为例子
前端·react.js·fastapi
徐同保20 分钟前
react useState ts定义类型
前端·react.js·前端框架
liangshanbo121528 分钟前
React 19 vs React 18全面对比
前端·javascript·react.js
Never_Satisfied43 分钟前
在 JavaScript 中,删除数组中内容为xxx的元素
java·前端·javascript
_菜鸟果果44 分钟前
Vue3+echarts 3d饼图
前端·javascript·echarts
Lynnxiaowen1 小时前
今天我们开始学习python语句和模块
linux·运维·开发语言·python·学习
rechol2 小时前
类与对象(中)笔记整理
java·javascript·笔记
Luffe船长2 小时前
前端vue2+js+springboot实现excle导入优化
前端·javascript·spring boot
橘子是码猴子2 小时前
LangExtract:基于LLM的信息抽取框架 学习笔记
笔记·学习
仲夏幻境2 小时前
js利用ajax同步调用如何
开发语言·javascript·ajax