当前位置:首页 > VUE

vue怎么实现登录跳转

2026-01-23 10:20:33VUE

Vue 实现登录跳转的方法

使用 Vue Router 导航守卫

router/index.js 中配置全局前置守卫,检查用户是否登录。未登录时重定向到登录页。

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

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

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    const isAuthenticated = localStorage.getItem('token')
    if (!isAuthenticated) {
      next('/login')
    } else {
      next()
    }
  } else {
    next()
  }
})

登录成功后编程式导航

在登录组件的提交方法中,验证成功后使用 this.$router.push 跳转。

methods: {
  handleSubmit() {
    axios.post('/api/login', this.formData)
      .then(response => {
        localStorage.setItem('token', response.data.token)
        this.$router.push('/dashboard')
      })
      .catch(error => {
        console.error(error)
      })
  }
}

使用路由元信息

为需要认证的路由添加 meta 字段标记,配合导航守卫使用。

{
  path: '/profile',
  component: Profile,
  meta: { requiresAuth: true }
}

登录状态管理

结合 Vuex 管理登录状态,使登录状态全局可用。

// store/index.js
export default new Vuex.Store({
  state: {
    isLoggedIn: false,
    user: null
  },
  mutations: {
    loginSuccess(state, user) {
      state.isLoggedIn = true
      state.user = user
    },
    logout(state) {
      state.isLoggedIn = false
      state.user = null
    }
  }
})

路由懒加载优化

对于需要登录后才能访问的页面,可以使用路由懒加载。

vue怎么实现登录跳转

{
  path: '/admin',
  component: () => import('./views/Admin.vue'),
  meta: { requiresAuth: true }
}

以上方法可以单独使用或组合使用,根据项目需求选择最适合的方案。全局前置守卫适合处理通用认证逻辑,编程式导航则适合处理特定场景的跳转需求。

标签: 跳转vue
分享给朋友:

相关文章

vue实现查询替换

vue实现查询替换

Vue 实现查询替换功能 在 Vue 中实现查询替换功能,可以通过数据绑定和字符串操作方法结合实现。以下是具体实现方式: 基础实现 <template> <div>…

vue怎么实现

vue怎么实现

Vue 实现方法 Vue 是一个流行的前端框架,用于构建用户界面。以下是几种常见的实现方法: 数据绑定 使用 v-model 指令实现双向数据绑定,适用于表单输入元素。 <input v-m…

vue实现handsontable

vue实现handsontable

Vue 中实现 Handsontable 要在 Vue 项目中集成 Handsontable,可以使用官方提供的 @handsontable/vue 封装库。以下是一个完整的实现步骤。 安装依赖 确…

vue实现suspense

vue实现suspense

Vue 3 中实现 Suspense Suspense 是 Vue 3 引入的一个内置组件,用于处理异步依赖的加载状态。它允许在等待异步组件或异步数据加载时显示一个后备内容(fallback),直到异…

vue能实现

vue能实现

Vue.js 是一个流行的前端框架,能够实现多种功能。以下是 Vue 能够实现的主要功能和特性: 响应式数据绑定 Vue 的核心特性之一是响应式数据绑定。通过数据驱动视图,当数据发生变化时,视图会自…

vue实现fullpage

vue实现fullpage

Vue 实现 FullPage 效果 在 Vue 中实现全屏滚动(FullPage)效果可以通过多种方式完成,以下是几种常见的方法: 使用现有库 vue-fullpage.js 安装 vue-ful…