我在加载http://localhost:8080/myapps/config路由时遇到问题。如果我使用http://localhost:8080/myapps,一切正常,我会得到我的应用程序列表。但是,当我想通过http://localhost:8080/myapps/config访问应用程序配置时,它将再次加载/ myapps的内容。但是,我的浏览器中的网址显示了正确的路径/ myapps / config。
我已经检查了数个小时的路由,但是一切似乎都还不错。有人可以照亮吗?
我的路由器文件:
import Vue from 'vue'
import Router from 'vue-router'
const MyApps = () => import('../views/app/subviews/MyApps');
const AppKeyValue = () => import('../views/app/subviews/AppKeyValue');
import MainView from '../views/app/MainView'
Vue.use(Router)
export default new Router({
mode: 'history',
routes:
[
{
path: '/',
component: MainView,
redirect: 'myapps',
children:
[
{
path: 'myapps',
component: MyApps,
meta:
{
requiresAuth: true,
breadcrumb: 'My Apps'
},
children:
[
{
path: 'config',
component: AppKeyValue,
meta:
{
requiresAuth: true,
breadcrumb: 'App configuration'
}
},
]
},
]
},
]
})
如果我不使用子路由,一切正常:
export default new Router({
mode: 'history',
routes:
[
{
path: '/',
component: MainView,
redirect: 'myapps',
children:
[
{
path: 'myapps',
component: MyApps,
meta:
{
requiresAuth: true,
title: 'message.ecommerce',
breadcrumb: 'My Apps'
},
},
{
path: 'myapps/config',
component: AppKeyValue,
meta:
{
requiresAuth: true,
title: 'message.ecommerce',
breadcrumb: 'App configuration'
}
}
]
}
]}
答案 0 :(得分:3)
您没有发布*.vue
组件,但我认为您在第二级组件中缺少<router-view>
。
示例:
MainView
被映射到/
并具有1个子路由(/myapps
)。您可能在<router-view>
中使用了MainView
。
MyApps
作为myapps
路由的子级映射到/
,并具有1个子路由(/config
)。
在您的<router-view
中添加一个MyApps.vue
,以显示其子项(在您的情况下,该子项仅为/config
)。
类似地,渲染的组件也可以包含其自己的嵌套
<router-view>
。
https://router.vuejs.org/guide/essentials/nested-routes.html#nested-routes
顺便说一句:这也是您第二个路由器配置正常运行的原因:主路由有两个子节点(/myapps
和/myapps/config
),这两个子节点都由MainView
的{{ 1}}。
这是文档中的一个有效示例: