学习React hook API

React hook API

useEffect(异步执行)

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

useLayoutEffect(同步执行)

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

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

2.在某些需要同步执行副作用的情况下:比如需要在用户点击按钮后立即改变按钮样式的情况。因为 `useEffect` 是异步执行的,可能会导致视觉上的延迟
相关推荐
清灵xmf22 分钟前
TypeScript 类型进阶指南
javascript·typescript·泛型·t·infer
小白学大数据29 分钟前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
@小博的博客36 分钟前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
qq_3901617737 分钟前
防抖函数--应用场景及示例
前端·javascript
334554321 小时前
element动态表头合并表格
开发语言·javascript·ecmascript
John.liu_Test1 小时前
js下载excel示例demo
前端·javascript·excel
南宫生1 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
PleaSure乐事1 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶1 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
getaxiosluo1 小时前
react jsx基本语法,脚手架,父子传参,refs等详解
前端·vue.js·react.js·前端框架·hook·jsx