React.lazy
함수를 사용하면 동적 import를 사용해서 컴포넌트를 렌더링 할 수 있습니다.
const OtherComponent = React.lazy(() => import('./OtherComponent'));
React.lazy
는 동적 import()
를 호출하는 함수를 인자로 가집니다. 이 함수는 React 컴포넌트를 default
export로 가진 모듈 객체가 이행되는 Promise
를 반환해야 합니다.
lazy 컴포넌트는 Suspense
컴포넌트 하위에서 렌더링되어야 하며, Suspense
는 lazy 컴포넌트가 로딩되길 기다리는 동안 로딩 화면과 같은 예비 컨텐츠를 보여줄 수 있게 해줍니다.
import React, { Suspense } from 'react';
const OtherComponent = React.lazy(() => import('./OtherComponent'));
function MyComponent() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<OtherComponent />
</Suspense>
</div>
);
}
fallback
prop은 컴포넌트가 로드될 때까지 기다리는 동안 렌더링하려는 React 엘리먼트를 받아들입니다. Suspense
컴포넌트는 lazy 컴포넌트를 감쌉니다. 하나의 Suspense
컴포넌트로 여러 lazy 컴포넌트를 감쌀 수도 있습니다.