React Router v7が正式にリリース!Remix統合でフレームワークへ進化!

2024年11月22日、React Router v7が正式にリリースされ、Remixと統合されました。これにより、React Routerは従来のルーティングライブラリとしての機能に加え、フレームワークとしての新たな機能も提供するようになりました。

目次

非破壊的アップグレード

React Router v7へのアップグレードは非破壊的であり、v6で使用していたコードはそのまま動作します。これにより、既存のプロジェクトでも安心して移行が可能です。

React 19への橋渡し

新たなバンドル、サーバーレンダリング、プリレンダリング、ストリーミング機能により、React 18から19への移行を段階的に進めることができます。これらの機能は、最新のReact機能を活用するための基盤を提供します。

型の安全性の向上

新しいtypegenにより、ルートパラメータ、ローダーデータ、アクションなどに対して、より強力な型安全性が提供されます。これにより、開発時のエラーを減少させ、コードの信頼性が向上します。

型安全なルートパラメータ

// app/routes.ts
import {
  type RouteConfig,
  route,
} from "@react-router/dev/routes";

export default [
  route("products/:id", "./routes/product.tsx"),
] satisfies RouteConfig;
import type { Route } from "./+types/product";

export function loader({ params }: Route.LoaderArgs) {
  //                      👆 { id: string }
  return { planet: `world #${params.id}` };
}

export default function Component({
  loaderData, // 👈 { planet: string }
}: Route.ComponentProps) {
  return <h1>Hello, {loaderData.planet}!</h1>;
}

フレームワークとしてのReact Router

Remixとの統合により、React Routerはフレームワークとして進化しました。以下のような機能を利用できます。

  • Viteバンドラーと開発サーバーの統合: 迅速な開発環境をサポートします。
  • モジュールの即時適用(HMR): コードの変更を即座に反映させ、生産性を向上させます。
  • コード分割: 必要なコードだけを読み込むことで、パフォーマンスを最適化します。
  • 型安全性を考慮したルート定義: 明確で安全なルーティングを可能にします。
  • ファイルシステムまたは設定に基づくルーティング: 柔軟なルーティング設定が可能です。
  • データ読み込みとアクションの型安全性: データの取得と操作がより安全に行えます。
  • アクション後のページデータの自動再検証: データの一貫性を自動的に保ちます。
  • SSR、SPA、静的レンダリングの戦略: 多様なレンダリング手法をサポートします。
  • 保留状態と楽観的UIのためのAPI: ユーザーエクスペリエンスを向上させるためのAPIを提供します。
  • デプロイメントアダプタ: さまざまな環境へのデプロイを容易にします。

公式ドキュメント(日本語)

日本語の公式ドキュメントも用意されております。
ぜひ実際に動かしながら新機能を試してみましょう。

おわりに

React Router v7は、従来の使いやすさを保ちながら、最新のフレームワーク機能を取り入れた革新的なアップデートです。

型安全性や柔軟なデータ管理、効率的なルーティングを活用することで、より洗練されたアプリケーション開発が可能になります。ぜひ試して、あなたのプロジェクトを次のレベルへ進化させましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次