直接上代码{ path: '/logout', name: 'Logout', beforeEnter: (to, from, next) => { console.log('work') // 生效 next(vm => { vm.$store.dispatch('logout') // 跑不进去 }) } },不知道是不是小弟调用错误, 在beforeEnter 中的next 插了debug或console.log 动作都无法生效, 看样子是进程根本没跑进next中,目前是想要只要router连到/logout这个path就会进行登出($store.dispatch('logout'))想请问哥们有没有什么看法,或踩过这个坑的大大能给点指教跪了
1 回答
MM们
TA贡献1886条经验 获得超2个赞
完整的导航解析流程
导航被触发。
在失活的组件里调用离开守卫。
调用全局的 beforeEach 守卫。
在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
在路由配置里调用 beforeEnter。
解析异步路由组件。
在被激活的组件里调用 beforeRouteEnter。
调用全局的 beforeResolve 守卫 (2.5+)。
导航被确认。
调用全局的 afterEach 钩子。
触发 DOM 更新。
用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。
在路由配置里的beforeEnter,路由组件还没被激活,next 里面是获取不到 vm 的
你可以在Logout这个组件的beforeRouteEnter里面next(vm => {})
添加回答
举报
0/150
提交
取消