toss/suspensive

React Suspense・Error Boundary・SSR対応をシンプルな宣言的コンポーネントで実現するライブラリです。

開発の材料自由に使える · MITWeb・Next.js・フルスタックTypeScript難易度
1,027+0今週0
96フォーク18Issue
デモ・公式サイトをひらくsuspensive.org

中辛 の解説

TypeScript製のReact用ライブラリで、複数パッケージから構成されています。@suspensive/reactは基本的なSuspense・ErrorBoundary・Delayコンポーネント、@suspensive/react-queryはReact Queryとの統合、@suspensive/jotaiはJotai状態管理との連携を提供します。難易度は低〜中程度で、既存React プロジェクトへの導入が容易です。デモ・ドキュメントはsuspensive.orgで公開されており、すぐに試せます。

이런 레포예요

이럴 때 쓰면 좋아요

  • 複数フェッチの処理エラーを一括管理し、リトライボタンで統一的にリセットしたいとき
  • ローディング中の画面ちらつきを回避して、スムーズなフェードイン表示を実現したいとき
  • サーバーサイドレンダリングとクライアントハイドレーション時に異なるUI(サーバー側ではローディング、クライアント側では本体)を出し分けたいとき

핵심 기능

shouldCatchで特定のエラー型だけをキャッチして他は透過させる選別的なエラー処理ErrorBoundaryGroupによる複数エラー境界の一括リセット(prop drilling不要)clientOnlyフラグで宣言的なSSRスキップとDelayコンポーネントによるflash-of-loading-state防止

대안 대비 차별점

React公式のError Boundary・Suspense APIの仕様ギャップを埋める実用的なコンポーネント設計により、型安全で本番アプリにすぐ適用できます。

食べた人たち

実際に使ってみた人の記録です — 一言も完走の記録も、確認のうえで公開しています。

試食評 · 使った人のひとこと

まだ試食評がありません。使ってみたら、最初のひとことをどうぞ。

ほかのリポジトリの試食評を見る →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

준비물

  • React 16.8以上

すぐ動かしてみるNode.js (pnpm)

ギット飯がリポジトリの構成を確認して組み立てた実行コマンドです。ターミナルに貼り付ければ、取得から実行までまとめて進みます。

git clone --depth 1 https://github.com/toss/suspensive.git &&
cd suspensive &&
pnpm install &&
pnpm run dev

コードは自分の環境で動きます — はじめて見るリポジトリなら、中身にひととおり目を通してから実行するのがおすすめです。

README가 안내하는 자세한 단계 보기
  1. Suspensiveをインストールします。
npm install @suspensive/react
  1. ErrorBoundary・Suspense・Delayコンポーネントをインポートして使用します。
import { Delay, ErrorBoundary, ErrorBoundaryGroup, Suspense } from '@suspensive/react'

const Page = () => (
  <ErrorBoundaryGroup>
    <ErrorBoundaryGroup.Consumer>
      {({ reset }) => <button onClick={reset}>Reset All</button>}
    </ErrorBoundaryGroup.Consumer>
    <ErrorBoundary
      shouldCatch={NetworkError}
      fallback={({ error, reset }) => <ErrorUI error={error} onRetry={reset} />}
    >
      <Suspense
        clientOnly
        fallback={
          <Delay ms={200}>
            {({ isDelayed }) => <Spinner style={{ opacity: isDelayed ? 1 : 0, transition: 'opacity 200ms' }} />}
          </Delay>
        }
      >
        <Content />
      </Suspense>
    </ErrorBoundary>
  </ErrorBoundaryGroup>
)
  1. 詳細なドキュメントはsuspensive.orgを参照してください。

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try toss/suspensive

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

1,027+0 / 7일

使いやすさ · まねしやすいか

まねしやすいサンプル評点 50/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

最近の更新あり · 2022 年に作成

「웹·Next.js·풀스택」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/toss/suspensive.svg)](https://www.gitbap.com/r/toss/suspensive)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る