1、相同點(diǎn)
useDeferredValue 本質(zhì)上和內(nèi)部實(shí)現(xiàn)與 useTransition 一樣都是把任務(wù)標(biāo)記成了過渡更新任務(wù)。
2、不同點(diǎn)
useTransition 是把 startTransition 內(nèi)部的更新任務(wù)變成了過渡任務(wù)transtion,而 useDeferredValue 是把原值通過過渡任務(wù)得到新的值,這個值作為延時狀態(tài)。 也就是說一個是處理一段邏輯,另一個是生產(chǎn)一個新的狀態(tài)。
useDeferredValue 還有一個不同點(diǎn)就是這個任務(wù),本質(zhì)上在 useEffect 內(nèi)部執(zhí)行,而 useEffect 內(nèi)部邏輯是異步執(zhí)行的 ,所以它一定程度上更滯后于 useTransition??梢岳斫獬蓇seDeferredValue = useEffect + transtion