Vue
导航守卫
使用 jwt 实现用户认证 这篇博客中有用到 导航守卫,今天就来总结总结 vue-rotuer 通过导航守卫来监听路由变化,其中导航守卫分为 3 类:全局,单个路由和组件路由 使用场景 需要在进入路由前进行一定操作,比如没权限时跳转 login 页面 需要组件里路由更新时(动态路由的更新)进行一定操作,比如 "/test/01" => "/test/02" …
使用 jwt 实现用户认证 这篇博客中有用到 导航守卫,今天就来总结总结 vue-rotuer 通过导航守卫来监听路由变化,其中导航守卫分为 3 类:全局,单个路由和组件路由 使用场景 需要在进入路由前进行一定操作,比如没权限时跳转 login 页面 需要组件里路由更新时(动态路由的更新)进行一定操作,比如 "/test/01" => "/test/02" …
使用 jwt 实现用户认证这篇博客中有用到 导航守卫,今天就来总结总结 vue-rotuer 通过导航守卫来监听路由变化,其中导航守卫分为 3 类:全局,单个路由和组件路由
const router = new Router({
routes: [
{
path: "/",
redirect: "/demo1"
},
{
path: "/demo1/:id",
component: Demo1,
beforeEnter: (to, from, next) => {
next();
}
},
{
path: "/demo2",
component: Demo2
},
{
path: "/demo3",
component: Demo3
}
]
});
router.beforeEach((to, from, next) => {
next();
});
router.afterEach((to, from) => {});
router.beforeEnter((to, from, next) => {
next();
});
前三个的执行顺序是 beforeEach=>beforeEnter=>afterEach
beforeRouteEnter (to, from, next) {
next(vm=>{
console.log(vm,'enter')
})
// 在渲染该组件的对应路由被 confirm 前调用
// 不!能!获取组件实例 `this`
// 因为当守卫执行前,组件实例还没被创建
},
beforeRouteUpdate (to, from, next) {
console.log(this,'update')
next()
// 在当前路由改变,但是该组件被复用时调用
// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
// 可以访问组件实例 `this`
},
beforeRouteLeave (to, from, next) {
console.log(this,'leave')
next()
// 导航离开该组件的对应路由时调用
// 可以访问组件实例 `this`
}
第四个的执行顺序是 beforeRouteUpdate=>beforeRouteLeave=>beforeRouteEnter
暂无评论
确认操作
请再次确认编辑图片
待上传图片 (剩余 0 张)
项目详情
确认评论邮箱
邀请制评论