스트리밍 : 서버에서 클라이언트로 데이터를 넘겨야할 때 보내야할 데이터가 크거나 준비시간이 오래걸릴 때 데이터를 여러개의 조각으로 나눈 후 하나씩 전송한다.
데이터가 모두 불러와지지 않은 상태에서도 먼저 불러올 수 있는 컴포넌트를 불러오고 나중에 랜더링이 오래걸리는 페이지를 불러온다.
dynamic page에서 자주 사용한다.
static page에 비해 미리 페이지를 그릴 수 없어 페이지 응답이 오래 걸릴 때 스트리밍을 사용해 빠르게 랜더링이 되는 부분만 먼저 보여주고 오래 걸리는 컴포넌트는 후속으로 가져온다.
폴더 내 loading.js나 loading.tsx 파일을 만든다. 그러면 같은 폴더와 하위 폴더의 dynamic page 파일이 로딩중일 때 만든 loading 파일이 대체 ui로 스트리밍된다.
주의사항/특징
컴포넌트와 쿼리스트링에서 스트리밍을 사용하는 방법이다.
import { Suspense } from "react";
<Suspense key={searchParams.q || ''} fallback={<div>Loading...</div>}>
<SearchResult q={searchParams.q || ""}/>
</Suspense>