已解決:反應路由器延遲加載

與 React Router 延遲加載相關的主要問題是,如果實施不當,可能會導致性能問題。 延遲加載會增加初始頁面加載時間,因為每個組件的代碼都需要單獨加載。 此外,如果一個組件不經常使用,它可能根本就不會被加載,從而導致資源浪費。 最後,與不支持延遲加載的舊瀏覽器存在潛在的兼容性問題。

import React, { Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

const Home = React.lazy(() => import('./Home'));
const About = React.lazy(() => import('./About'));
const Contact = React.lazy(() => import('./Contact'));
 
function App() { 

  return ( 

    <Router> 

      <Suspense fallback={<div>Loading...</div>}>

        <Switch>  

          <Route exact path="/" component={Home} />  

          <Route path="/about" component={About} />  

          <Route path="/contact" component={Contact} />  

        </Switch>  

      </Suspense> 

    </Router>  ); } export default App;

1. import React, { Suspense } from 'react';
// 這一行從 React 庫中導入 React 庫和 Suspense 組件。

2. import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
// 此行從 react-router-dom 庫中導入 BrowserRouter、Route 和 Switch 組件。

3. const Home = React.lazy(() => import('./Home'));
// 這一行創建了一個名為 Home 的常量,它使用 React 的延遲加載特性從與該文件(App 組件)相同目錄下的文件中動態導入一個名為 Home 的組件。

4. const About = React.lazy(() => import('./About'));
// 這一行創建了一個名為 About 的常量,它使用延遲加載從與該文件(App 組件)相同目錄的文件中動態導入一個名為 About 的組件。
const Contact = React.lazy(() => import('./Contact')); // 此行創建了一個名為 Contact 的常量,該常量使用延遲加載從與該文件(App 組件)位於同一目錄的文件中動態導入名為 Contact 的組件。

5.函數應用程序(){返回( // 這是一個箭頭函數,它返回包裹在之前導入的 Router 標籤中的 JSX 代碼

6.載入中...

}> //這個 Suspense 標籤用 Loading 的 fallback props 包裝了我們所有的路由…如果任何路由需要時間來加載

7. //開關標籤將確保一次只渲染一條路線

8. //當精確路徑“/”匹配時,此路由將渲染 Home Component

9. //當路徑“/about”匹配時,此路由將渲染關於組件

10. //此路由將在路徑“/contact”匹配時呈現聯繫人組件 ) } export default App; //最後我們關閉所有標籤並導出我們的應用程序

懶加載問題

延遲加載是一種用於延遲加載某些組件直到需要它們的技術。 這可以通過在任何給定時間僅加載必要的內容來幫助提高應用程序的性能。 但是,這在使用 React Router 時可能會成為一個問題,因為它不支持開箱即用的延遲加載。 要解決此問題,開發人員必須手動配置他們的路由以啟用延遲加載。 這可能涉及設置動態導入和代碼拆分,這可能是一項複雜且耗時的任務。 此外,可能需要使用一些庫,例如 React Loadable,以便使用 React Router 正確地實現延遲加載。

什麼是 React 懶加載

React 延遲加載是 React Router 的一個特性,它允許按需加載組件。 這意味著不是一次加載所有組件,而是只在需要時加載必要的組件。 這有助於減少初始頁面加載時間並提高性能。 它還允許更好的代碼組織和關注點分離,因為每個組件都可以獨立加載。

如何在我的路由器上使用 React lazy

React lazy 是 React 的一個特性,它允許你動態導入組件。 這意味著您可以根據需要加載它們,而不是預先加載所有組件。 這對於優化大型應用程序的性能很有用。

為了在 React Router 中的路由器上使用 React lazy,您需要將要延遲加載的組件包裝在動態導入調用中。 例如:

const MyComponent = React.lazy(() => import('./MyComponent'));

然後,在定義路由時,只需將 MyComponent 組件傳遞到 Route 組件中,如下所示:

這將導致 React Router 在導航到該路由時動態加載 MyComponent 組件。

相關文章:

發表評論