当前位置:首页 > VUE

vue登录功能实现总结

2026-02-23 12:23:27VUE

Vue 登录功能实现总结

基础结构搭建

使用 Vue CLI 或 Vite 初始化项目,安装必要依赖(如 vue-routeraxios)。创建以下核心文件:

  • src/views/Login.vue(登录页)
  • src/router/index.js(路由配置)
  • src/api/auth.js(API 接口封装)
  • src/store/auth.js(状态管理,如使用 Vuex/Pinia)

登录表单设计

Login.vue 中实现表单双向绑定,包含基础验证逻辑:

vue登录功能实现总结

<template>
  <form @submit.prevent="handleSubmit">
    <input v-model="form.username" type="text" placeholder="用户名">
    <input v-model="form.password" type="password" placeholder="密码">
    <button type="submit">登录</button>
  </form>
</template>

<script setup>
const form = reactive({
  username: '',
  password: ''
});

const handleSubmit = () => {
  if (!form.username || !form.password) {
    alert('请填写完整信息');
    return;
  }
  // 调用登录API
};
</script>

接口请求处理

auth.js 中封装登录 API:

import axios from 'axios';

export const login = (credentials) => {
  return axios.post('/api/auth/login', credentials);
};

路由与权限控制

配置路由守卫实现登录跳转:

vue登录功能实现总结

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

状态管理

使用 Vuex/Pinia 管理登录状态:

// store/auth.js (Pinia示例)
export const useAuthStore = defineStore('auth', {
  state: () => ({
    user: null,
    token: localStorage.getItem('token') || ''
  }),
  actions: {
    async login(credentials) {
      const res = await authApi.login(credentials);
      this.token = res.data.token;
      localStorage.setItem('token', this.token);
    }
  }
});

安全增强措施

  • 添加表单验证库(如 vee-validate
  • 实现 JWT 自动刷新机制
  • 敏感请求头添加 Authorization: Bearer ${token}
  • 密码字段前端加密处理(如使用 crypto-js

错误处理优化

统一处理 API 错误响应:

// axios 拦截器示例
axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      router.push('/login');
    }
    return Promise.reject(error);
  }
);

用户体验优化

  • 登录按钮加载状态
  • 成功登录后跳转来源页或默认首页
  • 持久化登录状态(通过 localStorage + token 验证)

标签: 功能vue
分享给朋友:

相关文章

vue状态管理怎么实现

vue状态管理怎么实现

Vue 状态管理实现方法 使用 Vuex(官方推荐) Vuex 是 Vue 的官方状态管理库,适合中大型应用。 安装 Vuex: npm install vuex --save 创建 Store 示…

vue实现打印二维码

vue实现打印二维码

安装二维码生成库 使用 qrcode 或 vue-qrcode 库生成二维码。通过 npm 安装: npm install qrcode vue-qrcode 生成二维码 在 Vue 组件中引入…

vue实现摘要

vue实现摘要

Vue 实现摘要的方法 在 Vue 中实现文本摘要功能通常涉及截取文本的前部分内容并添加省略号。可以通过计算属性、过滤器或自定义指令来实现。 计算属性实现 在 Vue 组件中定义一个计算属性,用于截…

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <…

vue vnode实现

vue vnode实现

Vue VNode 实现原理 VNode(Virtual Node)是 Vue 的核心概念之一,用于描述真实 DOM 的轻量级虚拟表示。VNode 的实现涉及以下关键点: VNode 的基本结构 V…