반응형
Lazy Loading이란?
특정 코드가 필요할 때만 그 코드를 로드하는 것.
SPA로 개발을 하면 모든 코드 번들이 로드되기 때문에 비효율적일 수 있다.
코드를 여러 번들로 나누고, 각각 필요할 때만 다운로드 하는 것.
라우트별로 나누어 그 라우트로 들어갈 때 다운로드한다.
<기존 코드 (Lazy Loading 적용 전>
import React from 'react';
import { Route, Switch, Redirect } from 'react-router-dom';
import AllQuotes from './pages/AllQuotes';
import QuoteDetail from './pages/QuoteDetail';
import NewQuote from './pages/NewQuote';
function App() {
return (
<Switch>
<Route path='/' exact>
<Redirect to='/quotes' />
</Route>
<Route path='/quotes' exact>
<AllQuotes/>
</Route>
<Route path='/quotes/:quoteId'>
<QuoteDetail/>
</Route>
<Route path='/new-quote' exact>
<NewQuote/>
</Route>
</Switch>
);
}
<Lazy Loading 적용 후 - NewQuotes, QuoteDetail >
import React, { Suspense } from 'react';
import { Route, Switch, Redirect } from 'react-router-dom';
import AllQuotes from './pages/AllQuotes';
//import QuoteDetail from './pages/QuoteDetail';
//import NewQuote from './pages/NewQuote';
const NewQuote = React.lazy(() => import('./pages/NewQuote'));
const QuoteDetail = React.lazy(() => import('./pages/QuoteDetail'));
function App() {
return (
<Suspense fallback={<p> Loading... </p>}> //페이지가 로딩되는 사이제 보여질 화면
<Switch>
<Route path='/' exact>
<Redirect to='/quotes' />
</Route>
<Route path='/quotes' exact>
<AllQuotes/>
</Route>
<Route path='/quotes/:quoteId'>
<QuoteDetail/>
</Route>
<Route path='/new-quote' exact>
<NewQuote/>
</Route>
</Switch>
</Suspense>
);
}
복잡한 프로젝트의 초기 로딩을 줄여주고, 효율적인 동작을 위해 필수적!
반응형
'프론트엔드 > 리액트 | React' 카테고리의 다른 글
리액트 Font Awesome 아이콘 적용하기 (0) | 2022.04.12 |
---|---|
ReactDOM.render is no longer supported in React 18. Use createRoot instead. 해결 (0) | 2022.04.12 |
리액트 무료 테마 (0) | 2022.04.12 |
리액트 라우터 사용하기 2 ( useParams, useRouteMatch, useHistory, useLocation) (0) | 2022.04.10 |
리액트에서 라우터 사용하기 (react-router-dom) (0) | 2022.04.10 |