动态添加路由后,控制台警告重复,在router.js中添加下面代码
const createRouter = () => new Router({
mode: 'history',
routes: constantRoutes
})
const router = createRouter()
export function resetRouter () {
const newRouter = createRouter()
router.matcher = newRouter.matcher
}
export default router
addRoutes()方法是router自带的原生方法,是动态添加路由的,它并没有删除之前路由中原有的路由所以在permission.js中引入router,并且添加在addRoutes之前resetRouter
import router,{resetRouter} from './router'
store.dispatch('GenerateRoutes').then(accessRoutes => {
// 根据roles权限生成可访问的路由表
resetRouter()
router.addRoutes(accessRoutes)// 动态添加可访问路由表
})