因为项目中的目录需要动态查询,但是使用router.addRouters()添加路由,手动刷新后造成页面空白。
本项目中有个基础路由
现在需要把后台返回的路由添加进去到home路由的子路由中去
children中去 ,
获取/home基础路由,使用router的最新的方法添加动态路由
addRoute(parentName: string, route: RouteConfig): () => void
添加一条新的路由规则记录作为现有路由的子路由。如果该路由规则有 name
,并且已经存在一个与之相同的名字,则会覆盖它
条件进去之后可以正常显示,但是手动刷新之后就会出现空白,这是因为页面重新刷新之后动态路由就会消失需要重新添加。
先判断当前动态路由是否存在,如果存在就直接next(),如果不存在就重新调用当前查询动态路由的方法重新赋值,然后使用
// 如果 addRoutes 并未完成,路由守卫会一层一层的执行执行,直到 addRoutes 完成,找到对应的路由 next({ ...to, replace: true })进行跳转