프론트엔드/리액트 | React

리액트에서 Lazy Loading 활용하기

개발자R 2022. 4. 6. 11:25
반응형

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>
);
}

 

 

복잡한 프로젝트의 초기 로딩을 줄여주고, 효율적인 동작을 위해 필수적!

반응형