react-server675fbba4
react-servertreemaindocssrcpagesja(pages)featurescomparison.mdx
docs/src/pages/ja/(pages)/features/comparison.mdxmdx14.3 KiB9f1c7100

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コンポーネントは基本的なscrollprefetchOnEnter/prefetchOnViewプロップをサポートしていますが、ルーターAPIのほとんどはまだunstable_マークが付いています。Wakuは高度なルーティングを必要としないシンプルなRSCアプリケーションに適しています。