欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React18新特性startTransition詳解

 更新時間:2024年09月19日 14:11:29   作者:田本初  
React18的新特性startTransition主要是為了優(yōu)化用戶體驗,通過標(biāo)記低優(yōu)先級的更新任務(wù),如頁面重渲染,使它們不會阻塞高優(yōu)先級的緊急任務(wù)如用戶輸入響應(yīng),本文介紹React18新特性startTransition,感興趣的朋友跟隨小編一起看看吧

前言

React 18 引入了 startTransition,這是 Concurrent Mode「并發(fā)特性」 中的一部分,主要用于標(biāo)記那些不需要立即響應(yīng)的 低優(yōu)先級 更新,為它們分配不同的優(yōu)先級,低優(yōu)先級任務(wù)會延遲處理,從而保持界面交互的流暢性。

作用

startTransition 會標(biāo)記某些更新為非緊急的。React 會為這些標(biāo)記的任務(wù)分配較低的優(yōu)先級,保證用戶界面的緊急更新(如輸入框的輸入響應(yīng))不會因為其他較大開銷的更新而被阻塞,從而提升用戶體驗。

  • 緊急任務(wù):用戶的輸入、點擊、表單操作等需要立即響應(yīng)的操作。
  • 非緊急任務(wù):狀態(tài)的更新、頁面的重新渲染等不需要立即更新完成的任務(wù),例如列表的過濾、分頁的切換等。

使用

useTransition 返回 isPending 和 startTransition 函數(shù):

  • isPending:表示低優(yōu)先級任務(wù)是否正在處理,通常可以用來顯示一個加載指示器。
  • startTransition:用于標(biāo)記低優(yōu)先級的更新。
const [isPending, startTransition] = useTransition();
startTransition(() => {
  // 此處的更新會被標(biāo)記為低優(yōu)先級
  setState(newValue);
});

工作原理

1. Lanes

通過 Lanes 機制實現(xiàn)優(yōu)先級調(diào)度(每個更新任務(wù)都會被分配到不同的 Lane 中,根據(jù)其優(yōu)先級進行調(diào)度)。

使用 startTransition 時,React 會將這個任務(wù)分配到一個較低優(yōu)先級的 Lane 中,這樣它不會阻塞高優(yōu)先級的任務(wù)(如用戶的交互)。
如果高優(yōu)先級任務(wù)出現(xiàn)(例如用戶在表單中輸入新的內(nèi)容),React 可以暫停低優(yōu)先級任務(wù),先處理緊急任務(wù),再在空閑時恢復(fù)低優(yōu)先級任務(wù)。

2. Fiber Reconciler

通過 Fiber Reconciler 處理更新任務(wù)。當(dāng) startTransition 標(biāo)記某個任務(wù)為低優(yōu)先級后,F(xiàn)iber 機制會按照優(yōu)先級調(diào)度任務(wù)并中斷長時間的渲染過程,確保界面的交互性不會受到影響。

應(yīng)用場景

  • 搜索和過濾后大規(guī)模的數(shù)據(jù)渲染
  • 復(fù)雜視圖

到此這篇關(guān)于React18新特性 - startTransition的文章就介紹到這了,更多相關(guān)React18 startTransition內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用React-Router實現(xiàn)前端路由鑒權(quán)的示例代碼

    使用React-Router實現(xiàn)前端路由鑒權(quán)的示例代碼

    這篇文章主要介紹了使用React-Router實現(xiàn)前端路由鑒權(quán)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • react路由跳轉(zhuǎn)傳參刷新頁面后參數(shù)丟失的解決

    react路由跳轉(zhuǎn)傳參刷新頁面后參數(shù)丟失的解決

    這篇文章主要介紹了react路由跳轉(zhuǎn)傳參刷新頁面后參數(shù)丟失的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • React在定時器中無法獲取狀態(tài)最新值的問題

    React在定時器中無法獲取狀態(tài)最新值的問題

    這篇文章主要介紹了React在定時器中無法獲取狀態(tài)最新值的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • antd之RangePicker設(shè)置默認(rèn)值方式

    antd之RangePicker設(shè)置默認(rèn)值方式

    這篇文章主要介紹了antd之RangePicker設(shè)置默認(rèn)值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 從零開始搭建webpack+react開發(fā)環(huán)境的詳細(xì)步驟

    從零開始搭建webpack+react開發(fā)環(huán)境的詳細(xì)步驟

    這篇文章主要介紹了從零開始搭建webpack+react開發(fā)環(huán)境的詳細(xì)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • React如何實現(xiàn)全屏監(jiān)聽Esc鍵

    React如何實現(xiàn)全屏監(jiān)聽Esc鍵

    這篇文章主要介紹了React如何實現(xiàn)全屏監(jiān)聽Esc鍵,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React+echarts?(echarts-for-react)?實現(xiàn)中國地圖及省份切換功能

    React+echarts?(echarts-for-react)?實現(xiàn)中國地圖及省份切換功能

    這篇文章主要介紹了React+echarts?(echarts-for-react)?畫中國地圖及省份切換,有足夠的地圖數(shù)據(jù),可以點擊到街道,示例我只出到市級,本文結(jié)合實例代碼給大家介紹的非常詳細(xì)需要的朋友可以參考下
    2022-11-11
  • 如何對react hooks進行單元測試的方法

    如何對react hooks進行單元測試的方法

    這篇文章主要介紹了如何對react hooks進行單元測試的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 三分鐘搞懂react-hooks及實例代碼

    三分鐘搞懂react-hooks及實例代碼

    React?Hooks是今年最勁爆的新特性真的毫不夸張。如果你也對react感興趣,或者正在使用react進行項目開發(fā),請抽出點時間閱讀下此文
    2022-03-03
  • React實現(xiàn)虛擬滾動的三種思路詳解

    React實現(xiàn)虛擬滾動的三種思路詳解

    在??web??開發(fā)的過程中,或多或少都會遇到大列表渲染的場景,為了解決大列表造成的渲染壓力,便出現(xiàn)了虛擬滾動技術(shù),本文主要介紹虛擬滾動的三種思路,希望對大家有所幫助
    2024-04-04

最新評論