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