vue路由导航守卫

vue的路由守卫分为三种:全局路由守卫、组件内路由守卫和路由独享守卫。

一、全局路由守卫

全局路由守卫分为两种:全局前置守卫和全局后置钩子

一.全局前置守卫

 //语法:
    router.beforeEach((to, from, next) => {
        //...
    	next()
    })
    //使用:
       router.beforeEach((to, from, next) => {
                 //我在这里模仿了一个获取用户信息的方法
       let isLogin = window.sessionStorage.getItem('userInfo');
         if (isLogin) {
          //如果用户信息存在则往下执行。
           next()
       } else {
         //如果用户token不存在则跳转到login页面
         if (to.path === '/login') {
            next()
          } else {
           next('/login')
        }
    } 
    	next()
    })

可以利用beforeEach来完成标题的修改.
在这里插入图片描述
在这里插入图片描述

二.全局后置钩子

你也可以注册全局后置钩子,然而和守卫不同的是,这些钩子不会接受 next 函数也不会改变导航本身

      router.afterEach( (to,from )=> {
       console.log(to);
       console.log(from);
      //...
     }) 

二、路由独享守卫

在router文件夹里的index.js里相对应的路由中写入

  beforeEnter: (to, from, next) => {
        // ...
        next()
      }

三、组件内路由守卫

顾名思义,在你要设置的组件内部使用,和data同级

1.beforeRouteEnter
2.beforeRouteUpdate
3.beforeRouteLeave

  beforeRouteEnter ((to, from, next)=> {
    // ...
    next()
  })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值