~/hovelopin
← cd ~/research

~/hovelopin/research/suspensive $ cat book.md

react

Suspensive

toss/suspensive12ch

Suspensive

toss/suspensive

React Suspense를 실전에서 제대로 쓰기 위한 선언적 도구 모음. isLoading·isError 분기를 걷어내는 방법을 챕터로 읽는다.

12 chapters공식 문서 ↗
#react#suspense#async
첫 챕터부터 읽기

Suspensive는 "React Suspense를 위한 모든 것"을 표방하는 라이브러리다. 로딩·에러·복구 상태를 컴포넌트마다 isLoading, isError로 분기하는 대신, 선언적인 컴포넌트 경계로 밀어내 관심사를 분리한다.

이 책은 공식 문서(https://suspensive.org/ko)의 개념을 필자의 관점으로 요약한 탐구 노트다. 정확한 API 시그니처와 최신 정보는 항상 공식 문서를 확인하자.

패키지는 크게 넷으로 나뉜다.

  • @suspensive/reactSuspense, ErrorBoundary, Delay, ClientOnly 등 코어 프리미티브
  • @suspensive/react-query — TanStack Query를 선언적으로 감싸는 SuspenseQuery 계열
  • @suspensive/jotai — Jotai atom을 컴포넌트로 다루는 Atom, AtomValue, SetAtom
  • @suspensive/codemods — 메이저 버전 마이그레이션 자동화

앞부분(1~4장)은 "왜 쓰고 어떻게 쓰는가"를 개념·사용법 위주로 다룬다. 뒷부분(5장부터)은 @suspensive/react의 소스를 한 컴포넌트씩 뜯어보며 내부 구현과 설계 의도를 정리한 분석 노트다. Object.assign 공통 패턴에서 시작해 useIsClient·ClientOnly·DefaultProps·Suspense·Delay·ErrorBoundary· ErrorBoundaryGroup·lazy 순으로, 코드가 왜 그렇게 생겼는지를 한 줄씩 읽는다.

# 목차 (table of contents)

  1. 01왜 Suspensive인가: isLoading 지옥에서 벗어나기
  2. 02@suspensive/react: 코어 프리미티브
  3. 03@suspensive/react-query: 선언적 데이터 패칭
  4. 04에러 복구: ErrorBoundaryGroup과 shouldCatch
  5. 05내부 뜯어보기 ①: 모든 컴포넌트가 공유하는 Object.assign 패턴
  6. 06내부 뜯어보기 ②: useIsClient와 ClientOnly로 서버/클라 판별하기
  7. 07내부 뜯어보기 ③: DefaultProps로 전역 기본값 주입하기
  8. 08내부 뜯어보기 ④: Suspense 래퍼는 28줄로 무엇을 하나
  9. 09내부 뜯어보기 ⑤: Delay와 useTimeout의 최신 ref 패턴
  10. 10내부 뜯어보기 ⑥: ErrorBoundary는 왜 337줄로 커졌나
  11. 11내부 뜯어보기 ⑦: ErrorBoundaryGroup은 숫자 하나를 방송한다
  12. 12내부 뜯어보기 ⑧: lazy가 React.lazy에 더한 것 — 프리로드와 reloadOnError