해결됨: 라우터 지연 로드 반응

마지막 업데이트 : 09/11/2023

React Router 지연 로딩과 관련된 주요 문제는 올바르게 구현되지 않으면 성능 문제가 발생할 수 있다는 것입니다. 지연 로딩은 각 구성 요소의 코드를 개별적으로 로드해야 하므로 초기 페이지 로드 시간을 증가시킬 수 있습니다. 또한 구성 요소를 자주 사용하지 않으면 전혀 로드되지 않아 리소스가 낭비될 수 있습니다. 마지막으로, 지연 로딩을 지원하지 않는 이전 브라우저와의 잠재적인 호환성 문제가 있습니다.

import React, { Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } 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...</div>}>

        <Switch>  

          <Route exact path="/" component={Home} />  

          <Route path="/about" component={About} />  

          <Route path="/contact" component={Contact} />  

        </Switch>  

      </Suspense> 

    </Router>  ); } export default App;

1. 'react'에서 React, { Suspense } 가져오기;
// 이 줄은 React 라이브러리와 React 라이브러리에서 Suspense 구성 요소를 가져옵니다.

2. 'react-router-dom'에서 { BrowserRouter as Router, Route, Switch } 가져오기;
// 이 줄은 react-router-dom 라이브러리에서 BrowserRouter, Route 및 Switch 구성 요소를 가져옵니다.

3. const Home = React.lazy(() => import('./Home'));
// 이 줄은 React의 지연 로딩 기능을 사용하여 이 파일(앱 구성 요소)과 동일한 디렉토리에 있는 파일에서 Home이라는 구성 요소를 동적으로 가져오는 Home이라는 상수를 만듭니다.

4. const About = React.lazy(() => import('./About'));
// 이 줄은 이 파일(App 구성 요소)과 같은 디렉터리에 있는 파일에서 About라는 구성 요소를 동적으로 가져오기 위해 지연 로딩을 사용하는 About이라는 상수를 만듭니다.
const Contact = React.lazy(() => import('./Contact')); // 이 줄은 이 파일(App 구성 요소)과 같은 디렉터리에 있는 파일에서 Contact라는 구성 요소를 동적으로 가져오기 위해 지연 로드를 사용하는 Contact라는 상수를 만듭니다.

5. 함수 앱() { 반환( // 이전에 가져온 라우터 태그에 래핑된 JSX 코드를 반환하는 화살표 함수입니다.

6.로드 중입니다 ...

}> //이 Suspense 태그는 로드하는 데 시간이 걸리는 경로가 있는 경우 Loading...이라는 폴백 소품으로 모든 경로를 래핑합니다.

7. //Switch 태그는 한 번에 하나의 경로만 렌더링되도록 합니다.

8. //이 경로는 정확한 경로 "/"가 일치할 때 홈 구성 요소를 렌더링합니다.

9. //이 경로는 "/about" 경로가 일치할 때 About Component를 렌더링합니다.

10. //이 경로는 "/contact" 경로가 일치할 때 연락처 구성 요소를 렌더링합니다.) } 기본 앱 내보내기; //마지막으로 모든 태그를 닫고 앱을 내보냅니다.

지연 로드 문제

지연 로딩은 필요할 때까지 특정 구성 요소의 로딩을 지연시키는 데 사용되는 기술입니다. 이것은 주어진 시간에 필요한 것만 로드하여 애플리케이션의 성능을 향상시키는 데 도움이 될 수 있습니다. 그러나 이것은 React Router를 사용할 때 문제가 될 수 있습니다. 바로 지연 로딩을 지원하지 않기 때문입니다. 이 문제를 해결하려면 개발자가 지연 로드를 사용하도록 경로를 수동으로 구성해야 합니다. 여기에는 복잡하고 시간이 많이 소요되는 작업인 동적 가져오기 및 코드 분할 설정이 포함될 수 있습니다. 또한 React Router로 지연 로딩을 제대로 구현하려면 React Loadable과 같은 일부 라이브러리를 사용해야 할 수 있습니다.

반응 게으른 부하 란 무엇입니까?

React Lazy Load는 요청 시 구성 요소를 로드할 수 있는 React Router의 기능입니다. 즉, 모든 구성 요소를 한 번에 로드하는 대신 필요할 때 필요한 구성 요소만 로드합니다. 이는 초기 페이지 로드 시간을 줄이고 성능을 향상시키는 데 도움이 됩니다. 또한 각 구성 요소를 독립적으로 로드할 수 있으므로 더 나은 코드 구성과 관심사 분리가 가능합니다.

라우터에서 React lazy를 사용하는 방법

React lazy는 구성 요소를 동적으로 가져올 수 있는 React의 기능입니다. 즉, 모든 구성 요소를 미리 로드하는 대신 필요에 따라 로드할 수 있습니다. 이는 대규모 애플리케이션에서 성능을 최적화하는 데 유용할 수 있습니다.

React Router의 라우터에서 React 지연을 사용하려면 동적 가져오기 호출에서 지연 로드하려는 구성 요소를 래핑해야 합니다. 예를 들어:

const MyComponent = React.lazy(() => import('./MyComponent'));

그런 다음 경로를 정의할 때 다음과 같이 MyComponent 구성 요소를 Route 구성 요소로 전달하기만 하면 됩니다.

이렇게 하면 해당 경로로 이동할 때 React Router가 MyComponent 구성 요소를 동적으로 로드하게 됩니다.

관련 게시물: