建设通网站不良信用信息撤销,东莞网络公司,郑州男科医院排名最好的医院,企业网站营销需要将任意路由 path: /:pathMatch(.*)* 从固定路由中提取出来#xff0c;在刷新时#xff0c;等待用户信息获取完毕#xff0c;将动态路由和任意路由通过 router.addRoute() 重新添加到路由中
// 固定路由
export const constantRoute [ ... ]// 权限路由
export const …需要将任意路由 path: /:pathMatch(.*)* 从固定路由中提取出来在刷新时等待用户信息获取完毕将动态路由和任意路由通过 router.addRoute() 重新添加到路由中
// 固定路由
export const constantRoute [ ... ]// 权限路由
export const asyncRoute [...]// 任意路由404路由可放在任意路由或固定路由中
export const anyRoute [{ path: /:pathMatch(.*)*,redirect: /404,name: any,// 通过 meta 可用于菜单展示判断meta: {title: 任意路由,hidden: true,}}
]刷新时执行可在pinia或vuex中实现
userInfo(){...// 获取用户信息并从中提取动态路由 userAsyncRoute// 用于菜单展示anyRoute可加可不加menuRoutes [...constantRoute, ...userAsyncRoute, ...anyRoute];// 将anyRoute、userAsyncRoute添加到路由中[ ...anyRoute, ...userAsyncRoute].forEach((route: any) {router.addRoute(route)})
}路由守卫可在permission.js中实现
//全局前置守卫
router.beforeEach(async (to, from, next) {...// 等待用户信息加载完毕await userInfo()// 异步路由刷新获取到用户信息时异步路由还没有加载完毕出现空白的效果// hack方法确保addRoutes已完成next({ ...to, replace: true }) ...
})