這篇文章帶大家來了解React18中的SuspenseList,介紹一下SuspenseList的作用,希望對大家有幫助!
Suspense的前世今生
#這個特性在React歷史版本的出現,第一次是16.6版本,發布了支援代碼拆分的Suspense
組件。在16.9版本中繼而支援了資料擷取。有興趣的同學可以移步React
的changelog
。 【相關推薦:Redis影片教學】
Suspense的簡單使用
前文有介紹,我們只用一個例子來溫顧下概念且使用
// 这个组件是动态加载的 const OtherComponent = React.lazy(() => import('./OtherComponent')); function MyComponent() { return ( <React.Suspense fallback={<Spinner />}> <div> <OtherComponent /> </div> </React.Suspense> ); }
在OtherComponent
元件尚不具備渲染條件的時候,會用fallback
傳入的元件進行預製渲染。這邊不具備渲染條件的具體表現就是資料取得時間較長,元件結構複雜等,但是不想因為這些影響應用的首屏渲染或初始化,之前的Suspense
的文章有介紹,不再贅述。
什麼是SuspenseList
從字面上的意思就能夠簡單的理解,就是如果我們的程式碼中有多個Suspense
存在,我們該怎麼控制它們的展示順序和展示方式呢?由此React
官方給了我們SuspenseList
元件。
<SuspenseList revealOrder="forwards"> <Suspense fallback={'加载中...'}> <ProfilePicture id={1} /> </Suspense> <Suspense fallback={'加载中...'}> <ProfilePicture id={2} /> </Suspense> <Suspense fallback={'加载中...'}> <ProfilePicture id={3} /> </Suspense> ... </SuspenseList>
我們先介紹下SuspenseList
僅有的兩個Props
revealOrder
表示的是子 Suspense
的載入順序,可選值有forwards
,backwards
,together
## forwards
表示同一層次,從前往後展示,無論請求速度都是前面的先展示
#backwards
跟forwards相反
together表示所有suspense都準備好後同時顯示,而不是一個個顯示
#########tail###指定如何顯示###SuspenseList### #中未載入項目的行為############預設情況下,###SuspenseList### 將顯示清單中的所有fallback############# ##collapsed### 僅顯示清單中下一個fallback################hidden### 未載入的項目不顯示任何資訊######ps:## #SuspenseList###只對直接子層級的###Suspense###或###SuspenseList###作用,不會對孫子節點運作。 #########SuspenseList的作用############SuspenseList###讓我們可以對一組###Suspense###的行為進行複合編排,雖然在演示中的demo相對比較簡單,但是如果在一個比較大型的專案中,我們常常會使用###Layout###來進行佈局。就拿我們常見的中後端管理平台來說和C端主體頁面來舉例。 #########################中後端系統中,我們經常使用頂欄側邊欄主體頁面的方式來佈局,在這一層面目前業界,實踐微前端的套路居多,例如###qiankun.js###,包括筆者所在的團隊,也探索了一套自己的微前端實作體系。如果在C端頁面,採用微前端的方式可能未必合適,在頁面中存在多區塊渲染等需求上,利用###SuspenseList###和###Suspense###結合React後端渲染SSR的能力,就能夠較系統化的實現獨立區塊的載入順序和行為的效果。 ######更多程式相關知識,請造訪:###程式設計影片###! ! ###以上是淺析React18中的SuspenseList,聊聊有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

禪工作室 13.0.1
強大的PHP整合開發環境