vue如何使用路由拦截器

在 Vue 中使用路由拦截器需要使用 Vue Router 提供的 beforeEach 方法。beforeEach 方法会在每个路由切换前,对路由进行拦截处理。可以在这个方法中进行一些验证或者权限认证,如果满足条件则继续跳转,否则取消跳转并进行相应处理。

下面是一个示例:

复制代码
import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login.vue'

Vue.use(Router)

const router = new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/dashboard',
      name: 'dashboard',
      component: Dashboard
    },
    {
      path: '/login',
      name: 'login',
      component: Login
    }
  ]
})

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('token')
  if (to.name !== 'login' && !isAuthenticated) {
    next({ name: 'login' })
  } else {
    next()
  }
})

export default router

在这个示例中,使用了 localStorage 来保存用户的 token 信息,用于验证用户是否已登录。如果用户未登录,但是又尝试访问其他需要登录的页面,则会被重定向到登录页面。如果用户已登录,则自动跳转到访问的页面。

需要注意的是,beforeEach 方法是在路由切换前执行的,因此在其中异步操作需要使用 Promise 来处理。

相关推荐
熊猫比分管理员5 分钟前
【全栈源码解决方案】Vue+Java四端齐全,一周交付可运行项目!
java·前端·vue.js
o***74177 分钟前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
坚持就完事了7 分钟前
CSS-5:盒子模型
前端·css·html
一 乐8 分钟前
考公|考务考试|基于SprinBoot+vue的考公在线考试系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·课程设计
吃饺子不吃馅8 分钟前
优化:如何避免 React Context 引起的全局挂载节点树重新渲染
前端·面试·github
q***721910 分钟前
Y20030018基于Java+Springboot+mysql+jsp+layui的家政服务系统的设计与实现 源代码 文档
android·前端·后端
林太白33 分钟前
跟着TRAE SOLO全链路看看项目部署服务器全流程吧
前端·javascript·后端
特级业务专家33 分钟前
把 16MB 中文字体压到 400KB:我写了一个 Vite 字体子集插件
javascript·vue.js·vite
humor40 分钟前
Quill 2.x 从 0 到 1 实战 - 为 AI+Quill 深度结合铺路
前端·vue.js
先生沉默先1 小时前
NodeJs 学习日志(8):雪花算法生成唯一 ID
javascript·学习·node.js