使用的是PanJiaChen大佬的vue-admin-template模板
下载大佬的权限管理模板运行正常,自己用来改造刷新就无限循环or页面空白,下面是改造成功的permission.js相关代码
// !!!自己项目不需要token
const hasGetUserInfo = store.getters.userInfo
if (hasGetUserInfo) {
// 即将要进入的目标 路由对象
if (to.path === '/login') {
// if is logged in, redirect to the home page
next({ path: '/' })
NProgress.done()
} else {
if (store.getters.routes) {
next()
} else {
try {
store.commit('user/set_router')
// !!!保证动态路由添加完后再次触发一次路由钩子,避免出现空白页面
next({ ...to, replace: true })
} catch (error) {
// remove token and go to login page to re-login
// await store.dispatch('user/resetToken')
Message.error(error || 'Has Error')
// next(`/login?redirect=${to.path}`)
next(`/login`)
NProgress.done()
}
}
}
}
总结
- next(**)只要有参数就会触发beforeEach,所以最后的出口一定要是next(),不然会无限循环
- 如果点击左边导航菜单没反应打印router.options.routes看看,没有值就得把动态路由手动赋上去