코드 분할은 JavaScript 번들을 더 작은 덩어리로 나누어 React 애플리케이션의 성능을 최적화하는 기술입니다. React는 컴포넌트 수준에서 코드 분할을 구현하기 위한 내장 방법으로 React.lazy를 제공합니다. 이를 통해 필요할 때 애플리케이션의 일부를 동적으로 로드할 수 있습니다.
const LazyComponent = React.lazy(() => import('./LazyComponent')); 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>Main App</h1> <HeavyComponent /> </div> ); } export default App;
이 접근 방식에서는 즉시 필요하지 않은 경우에도 전체 HeavyComponent가 기본 앱과 함께 번들로 제공됩니다.
import React, { Suspense } from "react"; const HeavyComponent = React.lazy(() => import("./HeavyComponent")); function App() { return ( <div> <h1>Main App</h1> <Suspense fallback={<div>Loading...</div>}> <HeavyComponent /> </Suspense> </div> ); } export default App;
이제 HeavyComponent는 렌더링될 때만 로드됩니다. 이렇게 하면 초기 번들의 크기가 줄어듭니다.
코드 분할은 React Router와 원활하게 작동하여 경로 구성 요소를 동적으로 로드합니다.
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;
논리적 분할을 사용하여 단일 앱에서 여러 구성 요소를 지연 로드합니다.
import React, { Suspense, useState } from "react"; const ComponentA = React.lazy(() => import("./ComponentA")); const ComponentB = React.lazy(() => import("./ComponentB")); function App() { const [showA, setShowA] = useState(false); const [showB, setShowB] = useState(false); return ( <div> <button onClick={() => setShowA(true)}>Load Component A</button> <button onClick={() => setShowB(true)}>Load Component B</button> <Suspense fallback={<div>Loading...</div>}> {showA && <ComponentA />} {showB && <ComponentB />} </Suspense> </div> ); } export default App;
React는 실패한 가져오기에 대한 기본 오류 처리 기능을 제공하지 않습니다. 이러한 경우에는 오류 경계를 사용하여 처리할 수 있습니다.
const LazyComponent = React.lazy(() => import('./LazyComponent')); function App() { return ( <React.Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </React.Suspense> ); }
React.lazy를 사용한 코드 분할은 앱 성능을 향상시키는 강력한 방법입니다. 구성 요소를 동적으로 로드하면 초기 로드 시간을 줄이고 사용자 경험을 향상할 수 있습니다. Suspense 및 적절한 오류 처리와 결합하면 효율적이고 확장 가능한 React 애플리케이션을 구축하기 위한 강력한 솔루션을 제공합니다.
위 내용은 React.lazy를 사용한 코드 분할: 앱 성능 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!