当前位置:首页 > VUE

vue实现后台登录

2026-01-19 11:57:59VUE

Vue 实现后台登录功能

创建登录页面组件

src/views 目录下创建 Login.vue 文件,包含表单元素和基础样式。表单通常包含用户名、密码输入框和登录按钮。

<template>
  <div class="login-container">
    <form @submit.prevent="handleLogin">
      <input v-model="form.username" placeholder="用户名" />
      <input v-model="form.password" type="password" placeholder="密码" />
      <button type="submit">登录</button>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        username: '',
        password: ''
      }
    }
  },
  methods: {
    handleLogin() {
      // 登录逻辑
    }
  }
}
</script>

配置路由

src/router/index.js 中配置登录页面的路由,确保未登录用户只能访问登录页面。

import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login.vue'

Vue.use(Router)

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

实现登录认证逻辑

handleLogin 方法中调用 API 接口验证用户凭证,成功后存储 token 并跳转到后台首页。

methods: {
  async handleLogin() {
    try {
      const response = await axios.post('/api/login', this.form)
      localStorage.setItem('token', response.data.token)
      this.$router.push('/dashboard')
    } catch (error) {
      alert('登录失败')
    }
  }
}

添加路由守卫

在路由配置中添加全局前置守卫,检查用户是否已认证。

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

集成状态管理(可选)

对于复杂应用,可使用 Vuex 管理登录状态和用户信息。

// store/modules/auth.js
export default {
  state: {
    token: localStorage.getItem('token') || '',
    user: null
  },
  mutations: {
    setToken(state, token) {
      state.token = token
      localStorage.setItem('token', token)
    }
  }
}

添加表单验证

使用 Vuelidate 或自定义验证规则确保输入有效性。

import { required } from 'vuelidate/lib/validators'

export default {
  validations: {
    form: {
      username: { required },
      password: { required }
    }
  }
}

实现登出功能

清除本地存储的 token 并重定向到登录页。

vue实现后台登录

methods: {
  logout() {
    localStorage.removeItem('token')
    this.$router.push('/login')
  }
}

标签: 后台vue
分享给朋友:

相关文章

vue实现自定义登录

vue实现自定义登录

实现自定义登录的基本步骤 在Vue中实现自定义登录功能通常需要结合前端和后端技术。以下是一个基本的实现流程: 创建登录表单组件 使用Vue的单文件组件创建一个登录表单,包含用户名和密码输入框以及提交…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue实现 弹窗

vue实现 弹窗

Vue 实现弹窗的基本方法 使用 Vue 实现弹窗可以通过多种方式,包括组件化、指令、插件等。以下是几种常见的实现方法。 组件化实现弹窗 创建一个独立的弹窗组件,通过 props 控制显示与隐藏。…

实现简单vue

实现简单vue

实现一个简单的 Vue.js 框架 Vue.js 的核心功能包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化版的 Vue 实现,涵盖基本功能。 数据响应式系统 使用 Object.define…

vue实现滚动显示

vue实现滚动显示

Vue 实现滚动显示的几种方法 在 Vue 中实现滚动显示可以通过多种方式实现,以下是几种常见的方法: 使用 CSS 动画 通过 CSS 的 animation 属性结合 @keyframes 实现…

vue elementui实现菜单

vue elementui实现菜单

Vue ElementUI 实现菜单 安装 ElementUI 确保项目已安装 Vue 和 ElementUI。若未安装,可以通过以下命令安装: npm install element-ui 在 m…