FrontEnd/React

로딩중입니다...는 React로 어떻게 사용할까?

CoderHan 2022. 12. 27. 22:20
반응형

우리는 흔히 웹앱이나 앱을 사용하다 보면 로딩중..이라고 하면서 

로딩 스피너가 뱅글뱅글 도는 화면을 자주 볼 수 있다.

 

이건 어떻게 쓸까? 바로 React.lazy()이다!!

 

리액트 홈페이지에 나온설명은 아래와 같다.

React.lazy함수를 사용하면 동적으로 import를 사용해서 컴포넌트를 렌더링 할 수 있다.

 

쉽게 말하면 lazy에 담긴 컴포넌트를 느리게 render할 수 있다는 말이다.

 

리액트는 처음 렌덜이 될 때 번들을 자동으로 불러오기 때문에

로드되길 기다리는 동안 우리는 사용자에게 로딩화면과 같은 예비 컨텐츠를 보여줄 수 있는 장점이 있다.

 

사용법은 아래와 같다.

import React, { Suspense } from 'react';

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

function MyComponent() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <OtherComponent />
      </Suspense>
    </div>
  );
}

주의할 점은 lazy 컴포넌트는 반드시 Suspense의 하위에서 렌더링되어야 한다.

fallback prop은 컴포넌트가 로드될 때 까지 기다리는 동안 렌더링 하려는 React Element를 노출한다.

 

이렇게 하면 우리는 로딩되는 시간동안 사용자에게 유용한 경험을 제공할 수 있다.

 

자세한 내용은 공식 홈페이지를 참조하길..

https://ko.reactjs.org/docs/code-splitting.html

 

코드 분할 – React

A JavaScript library for building user interfaces

ko.reactjs.org

 

리액트 공부하려고 고급 안내서 천천히 읽어보고 있는데 좋은 내용을 찾아서 기분이 좋다.

천천히 다 읽어봐야겠다!

반응형