具体问题:在实现一级路由跳转到二级路由时,会出现地址栏正确变动,但实际页面停留在菜单列表页并未改变的情况。
原问题代码
{
path:'/',
name:"Index",
component:()=>import('@/views/index.vue'), //不同级别路由跳转需要使用resolveComponent处理,才会更新页面
meta:{title:"主页"},
children:[
{
path:'/user/a',
name:"UserA",
component:()=>import('@/views/user/user_a.vue'),
meta:{title:"用户管理 > 用户A"},
},
{
path:'/user/b',
name:"UserB",
component:()=>import('@/views/user/user_b.vue'),
meta:{title:"用户管理 > 用户B"},
}
]
}
解决方案
原因分析:发现是一级路由和二级路由共用了router-view导致的。
import {h,resolveComponent } from 'vue'
export default [
//首页
{
path:'/',
name:"Index",
// component:()=>import('@/views/index.vue'), //不同级别路由跳转需要使用resolveComponent处理,才会更新页面
component: { render: () => h(resolveComponent("router-view")) },
meta:{title:"主页"},
children:[
{
path:'/user/a',
name:"UserA",
component:()=>import('@/views/user/user_a.vue'),
meta:{title:"用户管理 > 用户A"},
},
{
path:'/user/b',
name:"UserB",
component:()=>import('@/views/user/user_b.vue'),
meta:{title:"用户管理 > 用户B"},
}
]
}
]
以上即可解决!