React.lazyで遅延レンダリング

Reactで遅延レンダリングをする方法

Reactで遅延レンダリング(Lazy Loading)を行うには、React.lazyとSuspenseを使用する方法が一般的です。
これにより、コンポーネントが必要になるまでロードを遅らせ、アプリケーションの初期読み込み時間を短縮することができます。
以下に、具体的な方法を示します。

手順

1. コンポーネントの動的インポート
React.lazyを使用して、コンポーネントを動的にインポートします。

2. サスペンスコンポーネントの使用
Suspenseを使用して、動的にロードされるコンポーネントのフォールバックUI(ロード中に表示するUI)を設定します。

コード例

以下に、具体的なコード例を示します。

import React, { Suspense } from 'react';

// 遅延レンダリングするコンポーネントを動的にインポート
const LazyComponent = React.lazy(() => import('./LazyComponent'));

function App() {
  return (
    <div className="App">
      <Suspense fallback={<div>Loading...</div>}>
        <LazyComponent />
      </Suspense>
    </div>
  );
}

export default App;

詳細説明

React.lazy

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

import()を使用して、コンポーネントを動的にインポートします。
この方法により、LazyComponentは必要になるまでロードされません。

Suspense

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

Suspenseは、動的にインポートされたコンポーネントがロードされるまでの間に表示するフォールバックUIを提供します。
この例では、

Loading...
が表示されます。

メリット

初期ロード時間の短縮
必要なコンポーネントだけを先に読み込むことで、画面の読み込み時間を短縮できます。

パフォーマンスの向上
ユーザー体験を損なうことなく、ページのパフォーマンスを向上させることができます。

注意点

  • 遅延ロードされるコンポーネントは、初回アクセス時に追加のネットワークリクエストが発生するため、適切なフォールバックUIを提供することが重要です。
  • エラーハンドリングのためにReact.Suspenseと組み合わせてErrorBoundaryを使用することも検討してください。

この方法で、Reactアプリケーションのパフォーマンスを効果的に改善できます。