React Router v8
React Router v8 がリリースされた。v7 以降に 40 回以上のマイナーリリースで積み上げた機能を土台に、破壊的変更は最小限に抑えている。メジャー版はおおむね 1 年ごとに出す方針で、v6 と Remix v2 はセキュリティ更新のない EOL 扱いになる。
移行・破壊的変更
v8 の破壊的変更はすべて v7 上で事前対応できる。アップグレードは peer dependency の更新、future flag の採用、非推奨 API の削除が中心である。
最低サポートバージョンは次のとおり。
- Node 22.22.0+
- React 19.2.7+
- Vite 7+(Framework モード)
配布物は ESM のみとなり、tsconfig の target/lib は ES2022 に揃えられた。Node サポートは Active LTS の全 minor と、Maintenance LTS の最新 minor ブランチのみを公式サポートする。
v8 future flag は削除され、挙動が既定になった。対象は future.v8_trailingSlashAwareDataRequests、future.v8_passThroughRequests、future.v8_middleware、future.v8_viteEnvironmentApi である。future.v8_splitRouteModules はトップレベルの splitRouteModules 設定に移り、既定で有効になる。
削除・置き換えが必要な API は次のとおり。
react-router-domパッケージ(react-routerとreact-router/domへ移行)- route module
metaのdata引数(loaderDataへ置き換え) @react-router/dev/vite/cloudflareの dev proxy(@cloudflare/vite-pluginへ移行)@react-router/architectのcreateRequestHandlerにおけるuseRequestContextDomainNameオプション(挙動が既定化)
meta では data の代わりに loaderData を使う。
export function meta({ loaderData }: Route.MetaArgs) {
return [{ title: loaderData.title }];
}今後のサポート
React Router v7 は引き続きセキュリティ更新を受ける。Server Components と Server Actions のサポートは unstable のまま継続し、マイナー版での安定化を見込んでいる。