当前位置:首页 > 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 跳转。

vue怎么实现登录跳转

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 字段标记,配合导航守卫使用。

vue怎么实现登录跳转

{
  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
    }
  }
})

路由懒加载优化

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

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

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

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

相关文章

vue实现多级表头

vue实现多级表头

Vue 实现多级表头的方法 使用 el-table 组件 Element UI 的 el-table 组件支持多级表头的实现,通过嵌套 el-table-column 即可完成。 <el-ta…

vue实现sso

vue实现sso

Vue 实现 SSO(单点登录)方案 单点登录(SSO)允许用户通过一次登录访问多个相关系统。以下是基于 Vue 的实现方案: 使用 OAuth2/OpenID Connect 协议 OAuth2…

vue 实现搜索

vue 实现搜索

实现 Vue 搜索功能 在 Vue 中实现搜索功能通常涉及以下几个关键步骤: 数据绑定与输入监听 使用 v-model 双向绑定搜索输入框的值,监听用户输入: <template>…

vue实现白板

vue实现白板

Vue实现白板功能 使用Vue实现白板功能可以通过HTML5的Canvas API结合Vue的响应式特性来完成。以下是实现白板功能的关键步骤: 安装依赖 在Vue项目中安装必要的依赖,如vue-dr…

vue实现阻塞

vue实现阻塞

Vue 实现阻塞的方法 在 Vue 中实现阻塞操作通常涉及异步控制、状态管理或生命周期钩子的使用。以下是几种常见方法: 使用 async/await 处理异步阻塞 通过 async/await 可…

vue实现追加

vue实现追加

追加数据到数组或列表 在Vue中追加数据到数组或列表,可以通过push方法或concat方法实现。以下是几种常见的实现方式: 方法一:使用push方法 this.items.push(newIte…