首页 前端知识 Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

2024-01-24 15:01:50 前端知识 前端哥 742 376 我要收藏

目录

前言

全局前置路由守卫

全局后置路由守卫

局部路由守卫之path守卫

局部路由守卫之component守卫


前言

本文介绍Vue2最后的知识点,关于vue的路由守卫。也就是鉴权,不是所有的组件任何人都可以访问到的,需要权限,而根据权限显示路由组件就需要路由守卫。

(本文建立在上篇文章代码基础之上)

全局前置路由守卫

全局前置路由守卫写在创建好router和暴露router之间

router.beforeEach(callback)

callback函数可以是普通函数也可以是箭头函数

callback函数有三个参数

from:路由对象,表示从哪来,起点

to:路由对象,表示到哪去,终点

next:这是一个函数,调用后表示放行,可以继续往下走

router.beforeEach((to,from,next)=>{})

该callback函数会在初始化时被调用执行一次,以后每一次在任意切换路由组件之前都会被调用

简单举例

router.beforeEach((to,from,next)=>{
let user = 'zzz'
if(to.meta.isAuth) {
if(user=='admin') {
next()
}
else {
alert('你没有权限')
}
}
else {
next()
}
})
复制

因为需要给路由对象频繁的进行判断是否需要鉴权

所以可以通过给路由对象添加自定义属性,可以解决代码的冗余

给路由对象添加自定义属性需要在路由对象的meta中定义

通过以上代码可以简单的达到鉴权的功能,判断用户名从而决定是否放行显示路由组件

全局后置路由守卫

全局后置路由守卫与全局前置路由守卫相同,都写在创建路由器和暴露路由器之间

router.afterEach((to,from)=>{})

两个参数,to和from,和全局前置守卫相同

区别点在与

全局前置路由守卫在初始化时会调用一次callback以及在切换路由组件之前会调用一次callback函数

全局后置路由守卫则是在初始化时会调用一次callback和在切换路由组件之后调用一次

// 全局后置守卫
router.afterEach((to,from)=>{
console.log(to);
console.log(from);
})
复制

局部路由守卫之path守卫

局部路由守卫,针对单个组件进行鉴权

代码写在route路由对象中

beforeEnter(){}

没有callback函数

本身可以理解为函数

三个参数

to,from,next

beforeEnter(to,from,next){
let user = 'admin'
if(user=='admin') {
next()
}
else {
alert('你没有权限')
}
}
复制

局部路由守卫之component守卫

component守卫是针对路由组件的,只会对路由组件生效

代码写在路由组件中

进入路由组件之前执行:

beforeRouteEnter(to,from,next){}

离开路由组件之前执行:

beforeRouteLeave(to,from,next){}

beforeRouteEnter(to,from,next){
console.log(to);
next()
},
beforeRouteLeave(to,from,next){
console.log(from);
next()
}
复制

在一条时间线上执行

beforeRouteEnter中的to和beforeRouteLeave中的from是指向一个对象

转载请注明出处或者链接地址:https://www.qianduange.cn//article/201.html
评论
还可以输入200
共0条数据,当前/页
发布的文章

未知死亡的详细内容

2024-02-03 01:02:58

jQuery实现3D轮播图

2024-02-02 09:02:25

jquery中ajax总结

2024-02-02 09:02:25

jQuery的toggle方法使用指南

2024-02-02 09:02:25

解决jQuery跨域问题的方法

2024-02-02 09:02:24

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!