ReactにおけるLazy Loading
大規模なReactアプリは、JavaScriptのバンドルサイズが大きくなりがちです。 バンドルが大きくなると、サイトの動作が遅くなります。 ユーザーがアプリを操作できるようになるまで、待ち時間が長くなってしまいます。 これはユーザーエクスペリエンス(UX)の低下につながります。
Lazy loadingは、この問題を解決します。 ユーザーが必要としたときにのみ、コンポーネントを読み込みます。 すべてを一度に読み込む必要がなくなります。
Lazy loadingのメリット:
- 初期バンドルサイズの削減
- ページ読み込みの高速化
- ユーザーエクスペリエンスの向上
- 帯域幅の使用量の削減
- Core Web Vitalsの改善
React.lazy()の使い方
Reactは、コンポーネントを動的にインポートするための lazy() 関数を提供しています。
Reactは、コンポーネントがレンダリングされるときにのみ、そのコードをダウンロードします。
コード例:
import { lazy } from "react";
const ProductDetail = lazy(() => import("./pages/ProductDetail"));
lazyコンポーネントを使用する場合は、必ず Suspense と併用する必要があります。
Suspense は、コンポーネントの読み込み中にフォールバックUIを表示します。
コード例:
import { Suspense, lazy } from "react";
const ProductDetail = lazy(() => import("./pages/ProductDetail"));
function App() {
return (
<Suspense fallback={<div>Loading...</div>}>
<ProductDetail />
</Suspense>
);
}
成功させるための2つのルール:
- コンポーネントは
default exportを使用している必要があります。 - lazyインポートは、コンポーネント関数の外で宣言してください。
あなたのプロジェクトでは、lazy loadingを使用していますか? ぜひコメント欄で教えてください。返信させていただきます。