vue-路由守卫

Posted taozhibin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-路由守卫相关的知识,希望对你有一定的参考价值。

import Vue from ‘vue‘
import Router from ‘vue-router‘
import Home from ‘@/components/Home‘
Vue.use(Router)

const router = new Router({
  mode: ‘history‘,
  routes: [
    {
      path: ‘/‘,
      // name: ‘Home‘,
      // component: Home
      redirect:‘/login‘
    },{
      path:‘/login‘,
      component:Login
    },{
    }
    
      
  ]
})
router.beforeEach((to,from,next)=>{    //导航守卫
   //to将要访问的路径
   //from代表冲哪一个路径跳转过来
   //next 是一个函数 表示放行   
       //next()放行   next(‘/login‘) 强制跳转到哪个页面
     if(to.path ===‘/login‘) return next()

     // 获取token
     const tokenStr= window.sessionStorage.getItem(‘token‘)  //获取sessionStorage  
     if (!tokenStr) return next(‘/login‘)    //若没有直接强制回到首页


     next()   //若存在允许放行
     
})

export default router

 

import Vue from ‘vue‘
import Router from ‘vue-router‘
import Home from ‘@/components/Home‘
import Login from ‘@/components/Login‘
import Wecome from ‘@/components/wecome‘
import User from ‘@/components/user/user‘
Vue.use(Router)

const router = new Router({
  mode: ‘history‘,
  routes: [
    {
      path: ‘/‘,
      // name: ‘Home‘,
      // component: Home
      redirect:‘/login‘
    },{
      path:‘/login‘,
      component:Login
    },{
      path: ‘/home‘,
      name: ‘Home‘,
      component: Home,
      redirect:‘/wecome‘,
      children:[{
         path: ‘/wecome‘,
         name: ‘Wecome‘,
        component: Wecome,
      },{
        path: ‘/1-2-1‘,
        name: ‘user‘,
        component: User,
      }]
    }
    
      
  ]
})
router.beforeEach((to,from,next)=>{    //导航守卫
   //to将要访问的路径
   //from代表冲哪一个路径跳转过来
   //next 是一个函数 表示放行   
       //next()放行   next(‘/login‘) 强制跳转到哪个页面
     if(to.path ===‘/login‘return next()

     // 获取token
     const tokenStrwindow.sessionStorage.getItem(‘token‘)
     if (!tokenStrreturn next(‘/login‘)


     next()
     
})

export default router

以上是关于vue-路由守卫的主要内容,如果未能解决你的问题,请参考以下文章

vue全局路由守卫

Vue路由守卫(全局路由守卫、路由独享守卫、组件内部守卫)

vue局部路由守卫

Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)router-link 标签的属性路由代码跳转懒加载路由嵌套(子路由)路由传递数据导航守卫)

Vue路由守卫详解

vue-cli 初始化创建 vue2.9.6 项目路由守卫封装axiosvuex