title: 比較
category: Features
order: 99
import Link from "../../../../components/Link.jsx";
比較
この表は、@lazarv/react-serverを他の人気のあるReactフレームワークおよびルーティングソリューションと比較しています。フルスタック機能、アーキテクチャ、ルーティング、型安全性、検索パラメータ、スクロール復元、開発者体験を網羅しています。
この比較は、ドキュメントに記載されている機能セットを要約したものです。カスタムのユーザーランドソリューションではなく、ファーストクラスの組み込みサポートに焦点を当てています。一部の行はコアアーキテクチャを、その他の行は利便性やルーターのエルゴノミクスを説明しているため、この表は単一のスコアではなく、トレードオフのマップとしてお読みください。
この比較は@lazarv/react-serverチームによって管理されています。不正確な点を見つけた場合は、issueを開いてください — 公平で正確な内容を目指しています。
凡例:
- ✅ — ドキュメント化され、フレームワークの意図されたモデルの一部であるファーストクラスの組み込みサポート
- 🟡 — 部分的なサポート、重要な制限事項、またはユースケースの限られたサブセットでのみ存在するサポート
- 🔶 — ユーザーランドの構成、コミュニティプラグイン、または手動セットアップで可能だが、ファーストクラスの組み込み機能ではない
- 🛑 — 意味のある組み込みサポートなし
<Link name="full-stack">
## フルスタック機能
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Start |
React Router |
Waku |
| React Server Components |
✅ |
✅ |
🛑 |
🟡 |
✅ |
| サーバー関数(アクション) |
✅ |
✅ |
✅ |
🟡 |
✅ |
| SSR |
✅ |
✅ |
✅ |
✅ |
✅ |
| ストリーミングSSR |
✅ |
✅ |
✅ |
✅ |
✅ |
| APIルート |
✅ |
✅ |
✅ |
✅ |
✅ |
| API / ルートミドルウェア |
✅ |
✅ |
✅ |
✅ |
🟡 |
| サーバー関数ミドルウェア |
🟡 |
🛑 |
✅ |
🛑 |
🛑 |
| 静的サイト生成 |
✅ |
✅ |
🟡 |
🟡 |
✅ |
| 部分的プリレンダリング(PPR) |
✅ |
✅ |
🛑 |
🛑 |
🛑 |
| レスポンスキャッシュ(TTL) |
✅ |
✅ |
🛑 |
🛑 |
🛑 |
| リダイレクト(サーバー) |
✅ |
✅ |
✅ |
✅ |
🟡 |
| リライト(サーバー) |
✅ |
✅ |
🛑 |
🛑 |
🛑 |
| リロード / 無効化 |
✅ |
✅ |
✅ |
✅ |
🛑 |
<Link name="architecture">
## アーキテクチャ
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Start |
React Router |
Waku |
| オープンランタイム(ベンダーロックインなし) |
✅ |
🟡 <br/> Vercel向けに最適化 |
✅ |
✅ |
✅ |
| Viteベース |
✅ |
🛑 |
✅ |
✅ |
✅ |
| 複数のデプロイターゲット |
✅ |
🟡 |
✅ |
✅ |
✅ |
| マイクロフロントエンド / リモートコンポーネント |
✅ |
🔶 |
🛑 |
🛑 |
🛑 |
| MCPサーバー統合 |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| ワーカー / マルチスレッドレンダリング |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| クラスターモード |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| アダプターベースのデプロイ |
✅ |
🟡 |
✅ |
✅ |
✅ |
<Link name="routing">
## ルーティング
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Router |
React Router |
Waku |
| ネスト / レイアウトルート |
✅ |
✅ |
✅ |
✅ |
✅ |
| コードベースのルート |
✅ |
🛑 |
✅ |
✅ |
🛑 |
| ファイルベースのルート |
✅ |
✅ |
✅ |
✅ |
✅ |
| 仮想 / プログラムルート |
✅ |
🛑 |
✅ |
✅ |
🛑 |
| ランク付きルートマッチング |
✅ |
✅ |
✅ |
✅ |
🛑 |
| Suspenseルートトランジション |
✅ |
✅ |
✅ |
✅ |
🟡 |
| Suspenseルート要素 |
✅ |
✅ |
✅ |
✅ |
🟡 |
| エラーバウンダリ要素 |
✅ |
✅ |
✅ |
✅ |
✅ |
| ローディング / ペンディング要素 |
✅ |
✅ |
✅ |
✅ |
🟡 |
| クライアント専用ルート |
✅ |
🛑 |
✅ |
✅ |
🛑 |
| パラレルルート / アウトレット |
✅ |
✅ |
🛑 |
🛑 |
🟡 |
| ルートプリフェッチ |
✅ |
✅ |
✅ |
✅ |
🟡 |
| 自動プリフェッチ |
✅ |
✅ |
✅ |
✅ |
🛑 |
| アクティブリンクのカスタマイズ |
✅ |
✅ |
✅ |
✅ |
🛑 |
| ナビゲーションガード / ブロッカー |
✅ |
🛑 |
✅ |
🟡 |
🛑 |
<Form>コンポーネント |
✅ |
✅ |
🛑 |
✅ |
🛑 |
| 遅延 / ストリーミングプリミティブ |
✅ |
✅ |
✅ |
✅ |
🟡 |
<Link name="type-safety">
## 型安全性
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Router |
React Router |
Waku |
| 型安全なルートパス |
✅ |
🟡 |
✅ |
🟡 |
🛑 |
| 型安全なパスパラメータ |
✅ |
🛑 |
✅ |
✅ |
🟡 |
| 型安全なナビゲーション |
✅ |
🟡 |
✅ |
🟡 |
🛑 |
| 型安全な検索パラメータ |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| パスパラメータバリデーション |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| パスパラメータの変換 / パース |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| 型付きLinkコンポーネント |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| 型付きフック(useParams, useSearchParams) |
✅ |
🛑 |
✅ |
🟡 |
🛑 |
| ルート型の自動生成(ファイルルーター) |
✅ |
🟡 |
✅ |
🛑 |
🛑 |
| ブランド付きアウトレット型 |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| マルチライブラリスキーマサポート(Zod, ArkType, Valibot) |
✅ |
🛑 |
🟡 |
🛑 |
🛑 |
| 軽量パース関数(スキーマライブラリ不要) |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
<Link name="search-params">
## 検索パラメータ
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Router |
React Router |
Waku |
| 基本的な検索パラメータ |
✅ |
✅ |
✅ |
✅ |
🟡 |
| 検索パラメータフック |
✅ |
✅ |
✅ |
✅ |
🛑 |
| 型付き検索パラメータ |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| 検索パラメータのスキーマバリデーション |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
<Link> / useNavigateの検索API(文字列ではなくオブジェクト) |
✅ |
🟡 |
✅ |
🟡 |
🛑 |
関数型検索アップデーター(prev => next) |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| 検索パラメータ変換(エンコード/デコード境界) |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| ルートスコープの検索変換 |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| カスタム検索パース/シリアライゼーション |
✅ |
🛑 |
✅ |
🔶 |
🛑 |
<Link name="scroll-restoration-comparison">
## スクロール復元
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Router |
React Router |
Waku |
| ウィンドウスクロール復元 |
✅ |
🟡 |
✅ |
✅ |
🟡 |
| 要素 / コンテナスクロール復元 |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| 非同期コンテンツのスクロール復元 |
✅ |
🛑 |
✅ |
🛑 |
🛑 |
| ルートごとのスクロールカスタマイズ |
✅ |
🛑 |
🟡 |
🛑 |
🛑 |
| フラッシュなし復元(ハイドレーション前スクリプト) |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
prefers-reduced-motion対応 |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| ハッシュ / アンカースクロール |
✅ |
✅ |
✅ |
✅ |
🛑 |
| 設定レベルで有効化(コード不要) |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| クエリのみの変更でスクロール維持 |
✅ |
🛑 |
🟡 |
🛑 |
🛑 |
<Link name="data-fetching">
## データ取得とリソース
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Router |
React Router |
Waku |
| 型付きリソースディスクリプタ |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| スキーマバリデーション付きリソースキー |
✅ |
🛑 |
🟡 |
🛑 |
🛑 |
Suspense統合.use()フック |
✅ |
🛑 |
✅ |
🟡 |
🛑 |
| リソース無効化(キーごと) |
✅ |
🟡 |
✅ |
🛑 |
🛑 |
| リソースコレクション |
✅ |
🛑 |
🛑 |
🛑 |
🛑 |
| ルート-リソースバインディング(プリフェッチ) |
✅ |
🛑 |
✅ |
✅ |
🛑 |
| ルーターローダー(データ取得) |
✅ <br/> RSC + リソース |
🟡 |
✅ |
✅ |
🟡 |
| SWR / Stale-While-Revalidateキャッシュ |
✅ <br/> "use cache" |
✅ |
✅ |
🛑 |
🛑 |
| サーバー&クライアントローダー |
✅ |
🟡 |
✅ |
✅ |
🛑 |
<Link name="developer-experience">
## 開発者体験
</Link>
|
@lazarv/react-server |
Next.js |
TanStack Router |
React Router |
Waku |
| ゼロコンフィグのファイルルーター |
✅ |
✅ |
🟡 |
🟡 |
✅ |
| MDXページ |
✅ |
🔶 |
🛑 |
🛑 |
🛑 |
| 仮想ルートモジュール |
✅ |
🛑 |
🟡 |
🟡 |
🛑 |
| ルートスコープのローディング / エラー / フォールバックファイル |
✅ |
✅ |
🛑 |
🛑 |
🛑 |
| ルートDevtools |
🛑 |
🛑 |
✅ |
🟡 |
🛑 |
| ルートマスキング |
🛑 |
🛑 |
✅ |
🛑 |
🛑 |
| ルートレベルの型付き依存関係 |
✅ <br/> 型安全なリソース |
🛑 |
✅ <br/> 型安全なルートコンテキスト + ローダー |
🛑 |
🛑 |
| ルートのマウント / アンマウントイベント |
🛑 |
🛑 |
✅ |
🛑 |
🛑 |
<Link name="notes">
## 注記
</Link>
@lazarv/react-serverは完全なReact Server Componentsランタイムであり、単なるルーターではありません。ルーティングシステムはRSCストリーミング、サーバー関数、Viteビルドパイプラインと深く統合されています。これにより、型付きルート、クライアント専用ルート、サーバーサイドバリデーションなどの機能が、グルーコードなしでエンドツーエンドで動作します。
主なアーキテクチャの違い
- RSCネイティブ: RSCサポートを後付けするルーターとは異なり、
@lazarv/react-serverはReact Server Componentsのために一から構築されています。すべてのルートでサーバーコンポーネントとクライアントコンポーネントを自由に混在させることができます。
- クライアント専用ルート: ファイルシステムルーターで
"use client"を持つページは自動的にクライアント専用ルートになります — ナビゲーションはサーバーを完全にスキップします。設定は不要で、Reactの<Activity>コンポーネントによりコンポーネントの状態はナビゲーション間で保持されます。
- スキーマ非依存のバリデーション: ルートパラメータと検索パラメータは、任意のスキーマライブラリ(Zod、ArkType、Valibot)または軽量パース関数でバリデーションできます — ランタイムがバリデーション戦略を自動的に検出します。
- RSC + 型付きリソース:
@lazarv/react-serverは2つの補完的なデータ取得アプローチを提供します:async/awaitによるReact Server Components(RSCをローダーとして)と、型付きリソース — .use()(Suspense)、.query()(命令型)、.prefetch()、.invalidate()を備えたスキーマバリデーション済みの参照識別データディスクリプタです。リソースはキャッシュランタイムとして"use cache"を使用します — カスタムキャッシュレイヤーやSWRのボイラープレートは不要です。ルート-リソースバインディングにより、ナビゲーション時の並列プリフェッチが可能になります。
- ルートレベルの依存関係: TanStack Routerはルートコンテキストを、依存関係(認証、DBクライアントなど)をルートツリーに渡すためのファーストクラスの型付きプリミティブとして公開しています。
@lazarv/react-serverは同じ問題領域を型安全なリソース、リクエストコンテキスト、ネイティブモジュールでモデル化しています — リソースがすでにスキーマバリデーション済みのルートスコープデータを完全な型安全性で提供するため、別のルートコンテキストバッグは不要です。
- Devtoolsはまだありません: ルートDevtoolsは計画中です。現在のトレードオフは、型付きルートシステムがコンパイル時の安全性を提供し、ほとんどのルーティングエラーをブラウザに到達する前にキャッチすることです。
- アウトレットとパラレルルート:
@lazarv/react-serverは名前付きアウトレット(@sidebar、@content)を使用し、レイアウトに型付きプロップとしてレンダリングします。これはNext.jsのパラレルルートと機能的に類似していますが、より強い型付けを備えています — 各アウトレットはブランド付きReact要素であり、誤ってアウトレットを入れ替えることを防ぎます。
- Waku: WakuはVite上に構築されたもう一つのRSCネイティブフレームワークですが、意図的にミニマルなアプローチを取っています。基本的なファイルベースのルーティングとレイアウト、RSCサポートを提供しますが、型付きルーティングシステム、検索パラメータ処理、スクロール復元、ミドルウェア、その他の高度なルーティング機能は備えていません。Wakuの
Linkコンポーネントは基本的なscrollとprefetchOnEnter/prefetchOnViewプロップをサポートしていますが、ルーターAPIのほとんどはまだunstable_マークが付いています。Wakuは高度なルーティングを必要としないシンプルなRSCアプリケーションに適しています。