当前位置:首页 > 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 中实现表单双向绑定,包含基础验证逻辑:

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

路由与权限控制

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

// 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实现旋转

Vue 实现旋转效果的方法 在 Vue 中实现旋转效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 动画 通过 Vue 的 :class 或 :style 绑定 CSS 动画实现旋转…

vue实现方法

vue实现方法

Vue 实现方法 Vue 是一种流行的前端框架,用于构建用户界面和单页应用。以下是几种常见的 Vue 实现方法: 创建 Vue 实例 通过 new Vue() 创建一个 Vue 实例,传入配置对象…

vue 全景实现

vue 全景实现

Vue 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

vue 实现后退

vue 实现后退

实现后退功能的方法 在Vue中实现后退功能通常需要结合浏览器历史记录API或Vue Router的导航方法。以下是几种常见的实现方式: 使用Vue Router的go方法 this.$rout…

vue实现滚屏

vue实现滚屏

实现滚屏的基本方法 在Vue中实现滚屏效果可以通过多种方式完成,常见的有原生JavaScript滚动方法、第三方库或CSS动画。以下是几种常见实现方式: 使用window.scrollTo或Elem…