this の公式例によると、vuejsにネストされた/子ルートを追加する機能があります。しかし、これらの子ルートを動的に追加する方法に関するヘルプ/ドキュメントが見つかりません。たとえば、親ルートにアクセスしたときにのみ子ルートを追加します。
現在、Vueアプリケーションのすべてのルートは、ルーターインスタンスを作成する単一の場所で定義されています。 addRoutes というAPIがありますが、方法がわかりません。それを使用して、アプリケーションの遅延ロードされた機能をルートに沿って追加します。Angular2+モジュールシステムに精通している場合は、そのモジュール内の機能モジュールのルートを定義し、それらを遅延ロードすることもできます。何かができるかどうか疑問に思います。 VueJsで達成されましたか?
$router.addRoutes
を使用して、子を指定してルートを再追加できます。
現在の$route
に一致するルート定義オブジェクトを$router.options.routes
配列で検索して、($route.path
オブジェクトではなく)現在のルート定義を取得する必要があります。次に、ルート定義のchildren
配列をオブジェクトに追加し、それを$router.addRoutes
に渡します。
created() {
let { routes } = this.$router.options;
let routeData = routes.find(r => r.path === this.$route.path);
routeData.children = [
{ path: 'bar', component: Bar },
{ path: 'baz', component: Baz },
];
this.$router.addRoutes([routeData])
}