在Vue3中实现登录功能需要综合考虑表单处理、状态管理、路由控制和安全性。以下是分步详解及最佳实践:
一、项目初始化与依赖安装
-
创建Vue3项目
npm create vue@latest
-
安装必要依赖
npm install axios pinia vue-router @vee-validate/yup vee-validate yup
axios
:HTTP请求库pinia
:Vue3推荐的状态管理库vue-router
:路由管理vee-validate
+yup
:表单验证库
二、配置Pinia状态管理
- 创建用户状态Store
// stores/auth.js import { defineStore } from 'pinia'; export const useAuthStore = defineStore('auth', { state: () => ({ user: null, token: localStorage.getItem('token') || null, }), actions: { async login(credentials) { try { const response = await axios.post('/api/login', credentials); this.token = response.data.token; this.user = response.data.user; localStorage.setItem('token', this.token); return true; } catch (error) { console.error('Login failed:', error); return