서버 대신 클라이언트에서 자바스크립트를 사용하여 웹 애플리케이션을 개발하는 경우, 라우팅은 매우 중요한 부분입니다. 사용자가 다른 페이지로 이동하면, 그에 맞는 컴포넌트가 로드되어야 합니다.
그러나 때로는 컴포넌트를 로드하는 데 필요한 데이터가 실시간으로 로드되기 때문에, 라우팅 설정이 완료되기까지 시간이 걸릴 수 있습니다. 이때 Suspense를 사용하여 자바스크립트 라우팅을 지연시킬 수 있습니다.
Suspense란?
Suspense는 React 16.6 버전부터 도입된 기능으로, 비동기적으로 로드되는 컴포넌트들을 대기하는 동안 fallback UI를 보여주는 역할을 합니다. Suspense를 사용하면 애플리케이션의 성능을 향상시키고 사용자 경험을 개선할 수 있습니다.
Suspense를 사용하여 자바스크립트 라우팅을 지연시키는 방법은 다음과 같습니다:
-
React Router를 설치하고 설정합니다.
npm install react-router-dom
-
필요한 컴포넌트를 비동기적으로 로드하기 위해 React.lazy 함수를 사용합니다.
import React, { Suspense } from 'react';
const HomePage = React.lazy(() => import('./HomePage'));
const AboutPage = React.lazy(() => import('./AboutPage'));
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<Route path="/" exact component={HomePage} />
<Route path="/about" component={AboutPage} />
</Suspense>
</div>
);
}
-
Suspense 컴포넌트를 사용하여 fallback UI를 설정합니다. fallback UI는 컴포넌트가 로드되기까지 임시로 보여지는 UI입니다.
-
원하는 fallback UI를 지정합니다. 위의 예제에서는 “Loading…“이라는 텍스트가 보이도록 설정되었습니다.
이렇게 설정하면 자바스크립트 라우팅이 지연되고, 컴포넌트가 비동기적으로 로드됩니다. 사용자는 fallback UI를 보면서 로딩이 진행되는 동안 대기할 수 있습니다.
Suspense를 사용하여 자바스크립트 라우팅을 지연시키면 웹 애플리케이션의 성능을 향상시키고 사용자 경험을 개선할 수 있습니다. 이 방법을 사용하여 웹 애플리케이션 개발을 시작해보세요!
참고: React 공식 문서