前言:项目中大多数都是通过路由来进行跳转的,但是普遍的都会进行登陆验证后才能进入下一页面,这时候就需要守卫了,本博文主要讲解vue中的全局守卫 。
全局守卫在main.js中进行配置:
import vue from 'vue'import app from './app'import router from './router'import elementui from 'element-ui'import 'element-ui/lib/theme-chalk/index.css'// 全局守卫router.beforeeach((to, from, next) => { // 获取登陆状态 let islogin = sessionstorage.getitem('sid') //存储的sessionstorage的信息,登陆时使用sessionstorage.setitem('sid', '已登录') 设置本地存储信息 if (to.name === 'login') { // 如果是登录页,则跳过验证 next() //钩子函数 return } if (!islogin) { // 判断登陆状态,sessionstorage不存在的情况下 elementui.message({ //提示消息 message: '请先登录系统', type: 'error' }) next({ name: 'login' }) // 如果未登录,则跳转到登录页 } else { next() // 如果已经登陆,那就可以跳转 }})
【相关推荐:vuejs视频教程、web前端开发】
参数详解:“to”: 即将要进入的目标路由对象;(包含name,params,meta等属性)
“from”: 当前导航正要离开的路由对象;(包含name,params,meta等属性)
“next”: 确保要调用 next() 方法,否则钩子就不会被 resolved。这个当中还可以传一些参数。
钩子函数:钩子函数是在一个事件触发的时候,在系统级捕获到了他,然后做一些操作。一段用以处理系统消息的程序。“钩子”就是在某个阶段给你一个做某些处理的机会。
(学习视频分享:vuejs入门教程、编程基础视频)
以上就是一文聊聊vue中的全局守卫的详细内容。