遅延読み込み は、必要な場合にのみコンポーネントをロードできる React の手法です。これにより、最初はアプリの必要な部分のみがロードされ、残りは必要に応じて動的にロードされるため、初期ロード時間が短縮され、アプリケーションのパフォーマンスが向上します。
React は、遅延読み込みを実装するための React.lazy 関数と Suspense コンポーネントを提供します。
const LazyComponent = React.lazy(() => import('./path/to/Component')); function App() { return ( <React.Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </React.Suspense> ); }
import React from "react"; import HeavyComponent from "./HeavyComponent"; function App() { return ( <div> <h1>App Component</h1> <HeavyComponent /> </div> ); } export default App;
この例では、HeavyComponent はすぐに必要でない場合でも常にロードされるため、初期ロード時間が長くなります。
import React, { Suspense } from "react"; const HeavyComponent = React.lazy(() => import("./HeavyComponent")); function App() { return ( <div> <h1>App Component</h1> <Suspense fallback={<div>Loading Heavy Component...</div>}> <HeavyComponent /> </Suspense> </div> ); } export default App;
現在、HeavyComponent はレンダリング時にのみロードされます。コンポーネントがフェッチされている間、フォールバック UI (例: 「重いコンポーネントを読み込んでいます...」) が表示されます。
遅延読み込みは、特定のルートがアクセスされた場合にのみコンポーネントをロードするルーティングで特に役立ちます。
import React, { Suspense } from "react"; import { BrowserRouter as Router, Routes, Route } 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 Page...</div>}> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Suspense> </Router> ); } export default App;
複数のコンポーネントを遅延読み込みし、条件付きレンダリングと組み合わせることができます。
const LazyComponent = React.lazy(() => import('./path/to/Component')); function App() { return ( <React.Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </React.Suspense> ); }
遅延ロードされたコンポーネントのロードに失敗した場合 (ネットワークエラーなど)、React は遅延ロード用の組み込みエラー処理を提供しません。 ErrorBoundary を使用して、このようなシナリオを処理できます。
import React from "react"; import HeavyComponent from "./HeavyComponent"; function App() { return ( <div> <h1>App Component</h1> <HeavyComponent /> </div> ); } export default App;
React の遅延読み込みは、アプリケーションのパフォーマンスを向上させ、ユーザー エクスペリエンスを最適化する強力な方法です。 React.lazy と Suspense を使用してコンポーネントを動的にロードすることで、初期ロード時間を短縮し、アプリケーションの必要な部分のみが確実にフェッチされるようにすることができます。
以上がコンポーネントの遅延読み込みで React アプリのパフォーマンスを向上させるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。