Vue Router、Vue.jsの公式ルーティングライブラリは、ポピュラーなunplugin-vue-routerプラグインをコアパッケージに直接統合したバージョン5.0をリリースした。メンテナー Eduardo San Martin Morote氏(posva)は意図的「退屈」なものと説明しているが、このリリースには既存Vue Router 4ユーザーに対する破壊的変更は含まれていない。
Vue Router 5 の最大の変更点はunplugin-vue-router、完全な TypeScript サポートを備えたファイルベースルーティングを提供するビルド時プラグインの取り込みである。これまで別パッケージとしてメンテナンスされていたが、この機能はvue-routerからの import で直接利用できるようになり、追加の依存関係は不要となっている。既にunplugin-vue-router を使用している開発者には、移行は主に import パスの更新である。未使用の開発者にとってアップグレードはコマンドひとつである:
pnpm update vue-router@5
ファイルベースルーティングの統合に加え、Vue Router 5 ではいくつかの新機能が実験的追加機能として導入されている。vue-router/experimentalからインポート可能なデータローダーは、データフェッチをルート定義に直接結び付けるための標準化された方法を提供する。このアプローチによりコンポーネントは必要なデータが利用可能になってからレンダリングされるため、人的ローディング状態管理の必要性が軽減される。
本リリースではエディターツール改善のための Volar プラグインサポート、バリデーション用ルートJSONスキーマ、設定不具合を早期検出するためのパラメータパーサー欠如時ランタイムエラーも追加されている。内部的にはdevtools APIがv8にアップグレードされているが、これによりIIFEビルドでは @vue/devtools-api がバンドルされなくなっている。これが破壊的変更なしというコミットメントにおける唯一の例外である。
コミュニティの反応は概ね好意的であり、GitHubリリースには50件以上のリアクションが寄せられている。Posva氏はこのベータ版は「何も壊さないはずで、unplugin-vue-router を vue-router からの新しい import に直接置き換えられるようにするだけだ」とXで発表しており、依存関係チェーンのシンプル化を歓迎する開発者の声もこれに呼応している。フォローアップとなるv5.0.3 リリースもすでに公開されており、ネスト化ルートのためのよりクリーンなパターンとして_parent.vueサポートを含むファイルベースルーティングにさらなる改善が加えられている。
X 上であるユーザーが破壊的変更がないにもかかわらずメジャーバージョンである理由を尋ねた:
興味深いですね、なぜマイナーバージョンアップではないのでしょうか?
著者は回答した:
2つのリポジトリを統合することが理由です。
ファイルベースルーティングをコアルーターに組み込むアプローチはReact エコシステムにおける類似パターンとの比較を想起させる。TanStack RouterはReactアプリケーション向けに、型安全なファイルベースルーティングと組み込みデータローディングを提供している。両者はデータフェッチをコンポーネント内で命令的に処理するのではなく、ルートに宣言的に結びつけるべきであるという哲学を共有しているものの、Vue Routerのデータローダーは依然として実験的機能であるのに対し、TanStack Router ではコア機能となっている。
重要な点として、Vue Router 5はESM専用となり非推奨 API が削除される予定のバージョン6への足がかりとしても位置付けられている。移行ガイドではこれら今後の変更に備えるために、開発者がv5移行期間を活用することを推奨している。unplugin-vue-router から移行するプロジェクト向けにプラグインのimport、データローダー・パス、Volar設定、TypeScriptセットアップをカバーした詳細チェックリストが提供されている。
Vue Routerは、Vue.jsエコシステムの一部としてEduardo San Martin Morote氏によって維持されているオープンソースプロジェクトである。週間 500 万ダウンロード数以上であり、Vue.js を用いたシングルページアプリケーション(SPA)構築のために表現力豊かなルート構文、きめ細かなナビゲーション制御、およびコンポーネントベース・コンフィグレーションを提供している。