Suspense는 코드에서 로딩 상태를 나타내는 부분을 제거할 수 있게 해주는 API다.
코드에서 로딩 상태에 대해 신경쓰지 않아도 유저가 로딩 상태 화면을 볼 수 있는것.
getStaticProps, getStaticPaths, getServerSideProps와는 사용 못함.
getStaticProps에는 로딩화면이 없으니까!
그러니 위 props나 nextjs를 사용하지 않는 곳에 사용하면 좋음.
<SWRConfig
value={{
suspense: true,
}}
>
suspense를 사용하면, SWR을 사용한 컴포넌트를 찾는다.그리고 그 컴포넌트는 로딩이 완료 될 때 까지 보이지 않는다.
그래서, header,footer같은 곳에 SWR을 쓰면 로딩 할 때 전체 화면안보이게 됨.
그래서 컴포넌트 추출해서 그곳에서 SWR써라.
<Layout hasTabBar title="나의 캐럿" seoTitle="Profile">
<div className="px-4">
<Suspense fallback="Loading Mini Profile">
<MiniProfile />
</Suspense>
</div>
</Layout>
next.js에서 Suspense를 지원하니 저렇게 쓰는거고,
다른 라이브러리에서는 다르게 써야 할 것이야.