作用:vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。这里有很多方式植入路由导航中:全局的,单个路由独享的,或者组件级的。
参数-例如:
beforeEach(to,from,next){
//to 即将要进入的目标路由对象
//from 当前导航要离开的路由对象
//next() //这里要使用next放行 否则无法创建实例
}
- 全局路由守卫
– 前置路由守卫
– 全局解析守卫
– 全局后置钩子 - 路由独享守卫
- 组件内路由守卫
– beforeRouteEnter
– beforeRouteUpdate
– beforeRouteLeave
钩子函数的执行顺序:
Vue-Router
一、全局路由守卫
前置路由守卫会调用store里面的getUserInfo方法获取用户信息,存储在vuex里面,然后BaseHeader会通过计算属性,自动计算user的值,如果获取了用户信息,会就把登录、注册按钮变为用户的头像 。
前置路由守卫router.beforeEach()
:在初始化和每一次路由切换之前调用函数,控制用户信息的获取。
当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于等待中。
//注册
const router = createRouter({
... })
//全局守卫
router.beforeEach((to, from, next)=> {
// 判断是否登录
if(sessionstorage.getItem("isLogin") == "1") {
next()
}else