最近在将vue用Nuxt改造的过程中遇到很多问题,比如在middleware中进行路由鉴权,路由地址改变时候是有效的,但是刷新不会触发该怎么解决,还有就是addRoutes在这里是未定义的。nuxt的路由是根据page文件夹路径自动生成的,之前vue在第三方插件中要想改变路由地址,只需要import router from '@/router' 就可以在第三方插件中使用router.push({path:'xxx'}),到nuxt中目前是用redirect修改路径的,请问这个又要怎么修改?
代码如下:
export default ({ store,route,redirect }) => {
let isNotFound = false
if(process.browser){
if(!route.name) {
redirect( '/');
}
if (getToken()) {
if (store.getters.roles.length === 0) {
store.dispatch('GetInfo').then(res => {
const roles =[ res.data.type ]
store.dispatch('GenerateRoutes', { roles }).then(() => {
// router.addRoutes(store.getters.addRouters)
})
}).catch(error=>{
store.dispatch('LogOut')
})
}
} else {
if (!isNotFound) {
store.dispatch('NotFoundRoutes').then(() => {
isNotFound = true
redirect('/login/index')
})
}
}
}
}
因为代码被当作服务端的代码执行了
在文件里加上当前服务环境的判断