当前位置:首页 > 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 错误响应:

vue登录功能实现总结

// 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 实现语音功能的方法 使用 Web Speech API Vue 可以结合 Web Speech API 实现语音识别和合成功能。Web Speech API 包含 SpeechRecognit…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue 实现搜索

vue 实现搜索

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

vue 实现跳转

vue 实现跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转通常可以通过以下几种方式实现,具体选择取决于项目需求和技术栈(如是否使用 Vue Router)。 使用 Vue Router 进行编程式导航…

vue实现拖拉

vue实现拖拉

实现拖拽功能的基本步骤 在Vue中实现拖拽功能可以通过原生HTML5的拖放API或第三方库如vuedraggable完成。以下是两种方法的详细说明。 使用HTML5原生拖放API HTML5提供了原…

vue for实现

vue for实现

Vue 中的 v-for 指令 v-for 是 Vue.js 中用于渲染列表数据的核心指令,通过遍历数组或对象生成动态内容。 基本语法(数组) <ul> <li v-for…