路由守卫----全局前置守卫

文章展示了如何在Vue应用中使用VueRouter进行路由配置,包括首页、登录页的设置,以及在路由守卫中实现登录验证,通过检查localStorage中的token来决定是否重定向到登录页面。
摘要由CSDN通过智能技术生成
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {
    path: '/home',
    name: 'home',
    component: () => import('../view/home/HomeView.vue')
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('../view/login/LoginView.vue')
  },
  {
    path: "/",
    redirect: "/login"
  }
]

const router = new VueRouter({
  mode: 'history',
  // base: process.env.BASE_URL,
  routes
})


router.beforeEach((to, from, next) => {
  if(to.path==='/login'){
    next()
  }else{
    const token = localStorage.getItem('token');  // 获取token
    if (token) {
      next()
    } else {
      next("/login")
    }
  }
  
})
export default router

Vue-router提供了导航守卫来保护路由的导航。导航守卫可以在跳转或取消导航的过程中进行拦截。导航守卫可以分为全局守卫、路由独享守卫和组件级守卫全局守卫是注册在router实例上的,可以使用router.beforeEach方法注册一个全局前置守卫。在每次路由切换之前,全局前置守卫会被触发并接收to、from和next三个参数。可以在全局前置守卫中进行一些权限验证或者其他操作,然后通过调用next方法来进行导航。 路由独享守卫是在定义路由的时候通过beforeEnter属性来注册。路由独享守卫只会对特定的路由生效,可以在路由配置中定义一个beforeEnter函数来进行拦截操作。 组件级守卫是使用vue-router提供的beforeRouteEnter、beforeRouteUpdate和beforeRouteLeave方法来注册。beforeRouteEnter在进入路由前被调用,而beforeRouteUpdate在当前路由复用时被调用,beforeRouteLeave在离开当前路由时被调用。这些守卫可以在组件内部进行定义,并可以在组件内部进行一些操作,比如获取数据或者进行一些清理工作。 总结起来,vue-router路由守卫提供了全局守卫、路由独享守卫和组件级守卫来保护路由的导航,可以在不同的阶段进行各种操作,确保路由的安全和灵活性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue路由守卫(导航守卫)](https://blog.csdn.net/m0_48949881/article/details/122436528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值