반응형
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 |