Suspense

suspense의 사용성의 이해력을 높이려면, SSR이 페이지를 띄우기까지의 일련의 단계를 알아야 한다.

Untitled

위 단계에서, suspenseC단계에서 부터 사용된다. C 단계는 클라이언트가 서버에서 받은 HTML, CSS로 웹 페이지의 초기 버전을 로딩시켰지만, 아직 사용자는 상호 작용할 수 없는 단계이다.

예를 들어 버튼을 클릭한다던지, input에 정보를 작성하는 등의 동작이 불가한 상태이다. 사실상 사용자가 페이지를 볼 수만 있고, 아무것도 할 수 없는 상태이다.

상호작용을 하려면 D 단계에서 JavaScript와 React와 같은 라이브러리나 프레임워크가 Hydrate 하는 과정이 끝나야 상호작용이 가능해진다.

D 단계까지 지나야 사용자의 화면에 비로소 정상적인 상호작용 할 수 있는 웹페이지가 되는 것이다. 즉 4단계부터 5단계가 끝나는 과정까지, 사용자가 이유 없이 기다리거나 상호작용 할 수 없는 돌과 같은 페이지를 접해야 하는 의미 없는 시간을 필연적으로 가져야 하는 것, 바로 그 시간에 suspense를 사용하여 로딩 중 이라는 의미를 사용자에게 전달해주어 의미 없는 기다림이 되지 않도록 해주는 것이다.