Suspense란?

<Suspense>는 자식 요소가 로드되기 전까지 화면에 대체 UI를 보여줌

<Suspense fallback={<Loading/>}>
	<Component/>
</Suspense>

즉 <Component />의 렌더링을 특정 작업 이후로 미루고, 그 작업이 끝날 때 까지는 fallback 속성으로 넘긴 컴포넌트를 대신 보여줄 수 있음

<Component/> 렌더링 전에 구체적으로 어떤 작업이 일어나야 하는 지는 Component 함수 안에 명시 되어 있을 것임

Props

주의 사항

Suspense 사용 전

먼저 그동안 리액트에서 비동기 데이터를 불러와야 하는 컴포넌트는 다음과 같이 작성했을 것이다.

클래스형 컴포넌트의 경우, 생명주기 함수인 componentDidMount() 를 구현하는 것이고, 함수형 컴포넌트를 사용할 때는 useEffect() 훅(hook) 함수를 호출해서 데이터를 페칭할 것이다.

API를 호출하여 네트워크를 통해 데이터를 가져오는 처리는 컴포넌트에서 발생할 수 있는 대표적인 Side Effect이기 때문임

useEffect()를 통해 비동기 데이터를 불러오는 간단한 예시를 살펴보자