当前位置:首页 > VUE

vue路由实现登录跳转

2026-02-24 08:06:43VUE

路由守卫实现登录跳转

在Vue项目中,可以通过路由守卫(Navigation Guards)实现登录跳转逻辑。全局前置守卫router.beforeEach是最常用的方式,在路由跳转前进行拦截和验证。

// router/index.js
import router from './router'
import { getToken } from '@/utils/auth' // 假设有获取token的工具函数

router.beforeEach((to, from, next) => {
  const isAuthenticated = getToken() // 检查用户是否已登录
  if (to.matched.some(record => record.meta.requiresAuth)) {
    if (!isAuthenticated) {
      next({
        path: '/login',
        query: { redirect: to.fullPath } // 记录目标路由便于登录后跳转
      })
    } else {
      next()
    }
  } else {
    next()
  }
})

路由元信息配置

在路由配置中通过meta字段标记需要认证的路由:

vue路由实现登录跳转

const routes = [
  {
    path: '/dashboard',
    component: Dashboard,
    meta: { requiresAuth: true }
  },
  {
    path: '/login',
    component: Login
  }
]

登录成功后跳转处理

在登录组件中处理登录成功后的跳转逻辑:

vue路由实现登录跳转

// Login.vue
methods: {
  handleLogin() {
    login(this.loginForm).then(() => {
      this.$router.push(this.$route.query.redirect || '/')
    })
  }
}

动态路由加载

对于权限管理系统,可以结合动态路由实现更精细的控制:

// 登录后动态添加路由
const adminRoutes = [
  { path: '/admin', component: Admin }
]

router.addRoutes(adminRoutes)

组件内守卫

也可以在组件内部使用beforeRouteEnter守卫:

export default {
  beforeRouteEnter(to, from, next) {
    getToken() ? next() : next('/login')
  }
}

以上方法可以根据项目实际需求组合使用,实现完整的登录跳转和权限控制流程。注意处理路由白名单(如登录页、404页等不需要认证的页面),避免死循环跳转。

标签: 跳转路由
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 //…

vue实现界面跳转

vue实现界面跳转

Vue 实现界面跳转的方法 在 Vue 中实现界面跳转通常使用 Vue Router,以下是几种常见的实现方式: 使用 router-link 组件 通过声明式导航实现跳转,适合模板中使用:…

vue路由实现介绍

vue路由实现介绍

Vue 路由基础概念 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。它通过动态映射 URL 到组件,实现无刷新页面切换。核心功能包括: 嵌套路由:支持…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom…

react路由如何刷新

react路由如何刷新

React 路由刷新方法 在 React 中,路由刷新通常涉及以下几种场景和解决方案: 强制重新加载当前页面 使用 window.location.reload() 可以强制刷新整个页面,但会丢失…

vue 实现登录跳转

vue 实现登录跳转

实现登录跳转的基本流程 在Vue中实现登录跳转通常涉及以下几个核心步骤:路由配置、登录表单处理、状态管理及导航守卫。以下是具体实现方法: 路由配置 在router/index.js中配置登录页和需要…