我们在进行项目的实际开发中,可能会遇到一个问题:“如果我们没有登录的时候一些页面不能被访问该怎么去处理?”,这时候就需要我们的路由守卫了,路由守卫常用的有三种,全部在下方详细解释啦!
全局前置守卫是配置在全局的路由js文件中
话不多说,直接上代码:
router.beforeEach((to,from,next)=>{
next()
})
全局前置守卫中三个参数:to
,from
,next
。
to
:to 表示去往哪个路由
from
:from 表示从哪个路由离开
next
: next 是一个方法,代表的是是否展示路由页面,如果不使用next方法,那么指定页面无法显示
实战场景: 在进行登录权限时候进行使用,非常好用!!!
路由独享守卫配置在路由js文件中的每一个独立路由配置项中
话不多说,直接上代码:
beforeEnter:((to,from,next)=>{
// next()
if (!localStorage.getItem('token')) {
if (to.name === 'home') {
next()
}
else {
router.push('/home/articleList')
}
} else {
next()
}
})
在你要设置的组件内部使用,和data同级
话不多说,直接上代码:
const Foo = {
template: `...`,
beforeRouteEnter(to, from, next) {
// 不能获取组件实例
// 因为当守卫执行前,组件实例还没被创建
}
在全局守卫beforeEach(to, from, next)和独享守卫beforeEnter(to, from, next)之后调用!!!
小结:路由守卫能够帮助我们判断用户的登录状态,从而对用户未登录时做一些限制,这三种路由守卫是经常使用的,善于使用路由守卫也为后端进行路由权限管理提供了方便,同时能够大大提高开发效率!!!
vue-router官方文档解析路由守卫
✨ 原 创 不 易 , 还 希 望 各 位 可 以 支 持 一 下 \textcolor{blue}{原创不易,还希望各位可以支持一下} 原创不易,还希望各位可以支持一下
点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!
⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!
✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!