Vue路由守卫

Vue路由守卫介绍:

 Vue的路由守卫就是当我们进⾏⻚⾯跳转的时候会触发的钩⼦函数, 我们把它称之为vue的路由守卫

Vue的路由守卫分为3种: 

全局路由守卫,组件路由守卫和路由独享守卫

1、全局路由守卫:

// 在router的js文件里需要先引入vue和vue-router
import Vue from "vue";
import VueRouter from "vue-router";

//实例化vue-router
const router = new VueRouter({
  routes,
});

// 以上步骤不能少,才能创建全局路由守卫
//全局路由守卫分为前置守卫和后置守卫
//里面都有三个参数:    to---要进⼊的路由     from---离开之前的路由   
//只有前置守卫有    next---进⼊下⼀个路由
//后置守卫没有    next---进⼊下⼀个路由

//前置守卫
router.beforeEach((to, from, next) => {
  next()
});


//后置守卫
router.afterEach((to,from)=>{})

2、组件路由守卫

// 组件的 都会有 三个参数 to from next,写法是和data同级的
// beforeRouteEnter -- 路由进入之前
// beforeRouteUpdate -- 路由更新之前 (特定的指 组件没变;路由变了--动态路由)
// beforeRouteLeave  --- 路由离开之前


// beforeRouteEnter -- 路由进入之前
beforeRouteEnter(to,from,next){
   next()
},

// beforeRouteUpdate -- 路由更新之前 (特定的指 组件没变;路由变了--动态路由)
beforeRouteUpdate(to,from,next){
   next()
},

// beforeRouteLeave  --- 路由离开之前
beforeRouteLeave(to,from,next){
   next()
}

3、路由独享守卫

// 路由独享守卫 也是有三个参数, to from next ,不过是写在路由配置里面的
// 只守卫当前的路由配置

// beforeEnter

{
    path: "/",
    name: "Home",
    component: Home,
    beforeEnter(to,from,next){
        next()
    }
},

作用:

Vue的路由守卫在项⽬中我们经常使⽤路由守卫实现⻚⾯的鉴权 

当⽤户登录之后,我们会把后台返回的token以及⽤户信息保存到vuex 和本地,当⻚⾯进⾏跳转的时候,我们会在路由守卫⾥⾯获取vuex⾥⾯的token,如果token存在的话,我们则使⽤next让他进⼊要 跳转的⻚⾯,如果token不存在的话我们使⽤next⽅法让他回到登录⻚

以上只是个人的理解:

详细请参考:Vue.js (vuejs.org)   Vue的官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值