这篇要补充一个比较少使用到的 useLayoutEffect hook,和 useEffect 语法相同,但它们的执行时机不太一样。
先假设画面上有一个 toggle 按钮,已经绑定对应的事件和 state,那当它被点击的瞬间,DOM 经过了以下四个步骤做改变:
在第四步骤结束时 useEffect 才开始执行放在它里面的函式,但 useLayoutEffect 不同,它在第三步骤就会开始执行,而由於 useLayoutEffect 是同步的,所以它会有拖延到画面呈现的问题。
它主要在操作 DOM 时,有发现到有闪烁情况时使用。
在以下范例中,点击按钮後会跳出一段文字,从图片可以看出 useEffect 弹出文字有残影,若从图片不易看出读者也可以点范例去做尝试。
范例程序
useEffect:
useLayoutEffect:
注: 也许跳出文字在实际开发中有别的写法,但这里主要想表示它们的差别
<<: 【JavaScript】阵列方法之forEach()
.EAL 6/7:该产品基於有限状态机设计 .EAL 4/5/6:该产品基於高凝聚力,低耦合架构开...
React常常碰到一个Component需要回传多个React元素的情形,之前的我在遇到这类情况时,...
hi~今天要延续昨天merkle tree的主题! 我们昨天简述完之後,有用图解,希望大家有更清楚...
前言 今天开始终於要来讲self-attention了,由於我对於self-attention比较不...
出於书本 Chapter 1. Introduction to Ethical Hacking 非技...