当前位置:首页 > VUE

vue 实现登录退出

2026-01-15 02:58:18VUE

Vue 实现登录和退出功能

安装依赖

确保项目已安装 Vue 和 Vue Router。若未安装,可通过以下命令安装:

npm install vue vue-router

创建登录组件

src/components 目录下创建 Login.vue 文件,实现登录表单和逻辑:

<template>
  <div>
    <input v-model="username" placeholder="用户名">
    <input v-model="password" type="password" placeholder="密码">
    <button @click="handleLogin">登录</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    }
  },
  methods: {
    handleLogin() {
      if (this.username && this.password) {
        localStorage.setItem('token', '模拟token')
        this.$router.push('/')
      }
    }
  }
}
</script>

创建路由配置

src/router/index.js 中配置登录路由和主页路由:

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

Vue.use(Router)

export default new Router({
  routes: [
    { path: '/login', component: Login },
    { path: '/', component: Home, meta: { requiresAuth: true } }
  ]
})

实现路由守卫

src/main.js 或路由配置中添加全局前置守卫,检查用户是否登录:

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

实现退出功能

在主页组件 Home.vue 中添加退出按钮和逻辑:

<template>
  <div>
    <h1>欢迎</h1>
    <button @click="handleLogout">退出</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleLogout() {
      localStorage.removeItem('token')
      this.$router.push('/login')
    }
  }
}
</script>

状态管理(可选)

对于复杂应用,建议使用 Vuex 管理登录状态。创建 src/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    token: localStorage.getItem('token') || null
  },
  mutations: {
    setToken(state, token) {
      state.token = token
      localStorage.setItem('token', token)
    },
    clearToken(state) {
      state.token = null
      localStorage.removeItem('token')
    }
  }
})

完整流程

  1. 用户访问受保护路由时,路由守卫检查本地存储中的 token
  2. 未登录则跳转到登录页面
  3. 登录成功后存储 token 并跳转到主页
  4. 退出时清除 token 并返回登录页

注意事项

  • 实际项目中应使用 HTTPS 加密通信
  • 敏感信息不应长期存储在 localStorage 中
  • 后端需实现真正的身份验证接口
  • 考虑添加 token 过期机制

vue 实现登录退出

标签: vue
分享给朋友:

相关文章

vue循环数组实现

vue循环数组实现

vue循环数组的实现方法 在Vue中循环数组主要通过v-for指令实现,以下是几种常见用法: 基本数组循环 使用v-for指令遍历数组,可以通过(item, index)的语法获取当前项和索引值:…

vue实现检测数组

vue实现检测数组

Vue 中检测数组变化的方法 Vue 的响应式系统无法直接检测到数组的某些变化,因为 JavaScript 的限制。以下是一些解决方案: 使用 Vue.set 或 this.$set Vue 提供…

vue实现访问量

vue实现访问量

Vue 实现访问量统计的方法 使用前端计数 在 Vue 中可以通过简单的计数器实现页面访问量的统计。这种方法适合小型项目或演示用途。 // 在 Vue 组件中 data() { return…

vue查看更多怎么实现

vue查看更多怎么实现

实现 Vue 的“查看更多”功能 数据截取与显示控制 通过 v-if 或 v-show 控制内容的显示与隐藏。初始状态下只显示部分内容,点击“查看更多”后展开完整内容。 <template&…

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <templ…

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…