解決済み: ルーターの遅延ロードに反応する

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. 'react' から React, { Suspense } をインポートします。
// この行は、React ライブラリと Suspense コンポーネントを React ライブラリからインポートします。

2. import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
// この行は、react-router-dom ライブラリから BrowserRouter、Route、および Switch コンポーネントをインポートします。

3. const Home = React.lazy(() => import('./Home'));
// この行は、React の遅延読み込み機能を使用して Home という名前の定数を作成し、このファイル (App コンポーネント) と同じディレクトリにあるファイルから Home という名前のコンポーネントを動的にインポートします。

4. const About = React.lazy(() => import('./About'));
// この行は、このファイル (アプリ コンポーネント) と同じディレクトリ内のファイルから About というコンポーネントを動的にインポートするために遅延読み込みを使用する About という定数を作成します。
const Contact = React.lazy(() => import('./Contact')); // この行は、遅延読み込みを使用して Contact という名前の定数を作成し、このファイル (App コンポーネント) と同じディレクトリにあるファイルから Contact という名前のコンポーネントを動的にインポートします。

5. 関数 App() { return ( // これは、以前にインポートされた Router タグでラップされた JSX コードを返すアロー関数です

6.読み込んでいます...

}> //この Suspense タグは、ロードに時間がかかるルートがある場合、すべてのルートを Loading のフォールバック props でラップします。

7. //Switch タグは、一度に XNUMX つのルートのみがレンダリングされるようにします

8. //このルートは、正確なパス「/」が一致する場合にホーム コンポーネントをレンダリングします

9. //パス「/about」が一致すると、このルートは About コンポーネントをレンダリングします

10. //このルートは、パス「/contact」が一致した場合に連絡先コンポーネントをレンダリングします) } export default App; // 最後に、すべてのタグを閉じてアプリをエクスポートします

遅延ロードの問題

遅延読み込みは、必要になるまで特定のコンポーネントの読み込みを遅らせるために使用される手法です。 これにより、特定の時点で必要なものだけをロードすることで、アプリケーションのパフォーマンスを向上させることができます。 ただし、React Router はそのままでは遅延読み込みをサポートしていないため、これは問題になる可能性があります。 この問題を回避するには、開発者はルートを手動で構成して遅延読み込みを有効にする必要があります。 これには、動的インポートとコード分割の設定が含まれる場合があり、これは複雑で時間のかかる作業になる可能性があります。 さらに、React Router で遅延読み込みを適切に実装するために、React Loadable などの一部のライブラリを使用する必要がある場合があります。

React遅延ロードとは

React 遅延ロードは、オンデマンドでコンポーネントをロードできるようにする React Router の機能です。 これは、すべてのコンポーネントを一度にロードする代わりに、必要なときに必要なコンポーネントだけがロードされることを意味します。 これにより、最初のページの読み込み時間が短縮され、パフォーマンスが向上します。 また、各コンポーネントを個別にロードできるため、コードの編成と関心の分離が向上します。

ルーターで React lazy を使用するにはどうすればよいですか

React lazy は、コンポーネントを動的にインポートできる React の機能です。 これは、すべてのコンポーネントを事前にロードする代わりに、必要に応じてロードできることを意味します。 これは、大規模なアプリケーションでパフォーマンスを最適化するのに役立ちます。

React Router のルーターで React lazy を使用するには、動的インポート呼び出しで遅延ロードするコンポーネントをラップする必要があります。 例えば:

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

次に、ルートを定義するときに、次のように MyComponent コンポーネントを Route コンポーネントに渡すだけです。

これにより、React Router はそのルートに移動するときに MyComponent コンポーネントを動的にロードします。

関連記事:

コメント