日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

React.lazy()

發(fā)布時(shí)間:2024/1/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 React.lazy() 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

React.lazy?能實(shí)現(xiàn)像渲染常規(guī)組件一樣處理動(dòng)態(tài)引入的組件。

允許你定義一個(gè)動(dòng)態(tài)加載的組件。這有助于縮減 bundle 的體積,并延遲加載在初次渲染時(shí)未用到的組件。

import React, { Suspense } from 'react';const OtherComponent = React.lazy(() => import('./OtherComponent'));function MyComponent() {return (<div><Suspense fallback={<div>Loading...</div>}><OtherComponent /></Suspense></div>); }

React.lazy?接受一個(gè)函數(shù),這個(gè)函數(shù)需要?jiǎng)討B(tài)調(diào)用?import()。它必須返回一個(gè)?Promise,該 Promise 需要 resolve 一個(gè)?default?export 的 React 組件。

請(qǐng)注意,渲染?lazy?組件依賴該組件渲染樹上層的?<React.Suspense>?組件。這是指定加載指示器(loading indicator)的方式,以防其組件樹中的某些子組件尚未具備渲染條件。

應(yīng)在?Suspense?組件中渲染 lazy 組件,如此使得我們可以使用在等待加載 lazy 組件時(shí)做優(yōu)雅降級(jí)(如 loading 指示器等)。

fallback?屬性接受任何在組件加載過程中你想展示的 React 元素。你可以將?Suspense?組件置于懶加載組件之上的任何位置。你甚至可以用一個(gè)?Suspense?組件包裹多個(gè)懶加載組件。

import React, { Suspense } from 'react';const OtherComponent = React.lazy(() => import('./OtherComponent')); const AnotherComponent = React.lazy(() => import('./AnotherComponent'));function MyComponent() {return (<div><Suspense fallback={<div>Loading...</div>}><section><OtherComponent /><AnotherComponent /></section></Suspense></div>); }

異常捕獲邊界(Error boundaries)

如果模塊加載失敗(如網(wǎng)絡(luò)問題),它會(huì)觸發(fā)一個(gè)錯(cuò)誤。

可以通過異常捕獲邊界(Error boundaries)技術(shù)來處理這些情況,以顯示良好的用戶體驗(yàn)并管理恢復(fù)事宜。

import React, { Suspense } from 'react'; import MyErrorBoundary from './MyErrorBoundary';const OtherComponent = React.lazy(() => import('./OtherComponent')); const AnotherComponent = React.lazy(() => import('./AnotherComponent'));const MyComponent = () => (<div><MyErrorBoundary><Suspense fallback={<div>Loading...</div>}><section><OtherComponent /><AnotherComponent /></section></Suspense></MyErrorBoundary></div> );

總結(jié)

以上是生活随笔為你收集整理的React.lazy()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。