当前位置:首页 > VUE

vue3.0登录实现

2026-02-23 05:36:22VUE

Vue 3.0 登录功能实现

Vue 3.0 实现登录功能通常涉及前端界面、表单验证、API 调用和状态管理。以下是具体实现步骤:

环境准备 确保已安装 Vue 3.0 和必要的依赖(如 Vue Router、Axios)。可以通过以下命令创建项目:

npm init vue@latest

登录页面组件 创建 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>
import { reactive } from 'vue';
import { useRouter } from 'vue-router';
import axios from 'axios';

const form = reactive({
  username: '',
  password: ''
});

const router = useRouter();

const handleSubmit = async () => {
  try {
    const response = await axios.post('/api/login', form);
    localStorage.setItem('token', response.data.token);
    router.push('/dashboard');
  } catch (error) {
    console.error('登录失败:', error);
  }
};
</script>

路由配置router/index.js 中配置登录路由:

import { createRouter, createWebHistory } from 'vue-router';
import Login from '../views/Login.vue';

const routes = [
  {
    path: '/login',
    name: 'Login',
    component: Login
  }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;

状态管理(可选) 使用 Pinia 管理登录状态:

// stores/auth.js
import { defineStore } from 'pinia';

export const useAuthStore = defineStore('auth', {
  state: () => ({
    isAuthenticated: false,
    user: null
  }),
  actions: {
    login(token) {
      this.isAuthenticated = true;
      localStorage.setItem('token', token);
    },
    logout() {
      this.isAuthenticated = false;
      localStorage.removeItem('token');
    }
  }
});

表单验证增强 使用 Vuelidate 或手动验证:

const rules = {
  username: { required, minLength: minLength(3) },
  password: { required, minLength: minLength(6) }
};

const v$ = useVuelidate(rules, form);

拦截器配置 设置 Axios 请求拦截器处理 token:

axios.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

导航守卫 保护需要认证的路由:

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

安全注意事项

  • 使用 HTTPS 传输数据
  • 避免在客户端存储敏感信息
  • 实现 CSRF 保护
  • 后端应验证并过滤所有输入

以上步骤提供了 Vue 3.0 登录功能的核心实现方案,可根据实际需求扩展或调整。

vue3.0登录实现

分享给朋友:

相关文章

vue设计与实现 书

vue设计与实现 书

vue设计与实现 书 《Vue.js设计与实现》是一本深入探讨Vue.js框架内部原理和设计思想的书籍,适合希望深入理解Vue.js的开发者。以下是关于这本书的详细信息: 书籍内容 《Vue.js…

vue实现拖放

vue实现拖放

Vue 实现拖放功能 Vue 中实现拖放功能通常可以通过 HTML5 的原生拖放 API 或第三方库(如 vuedraggable)来实现。以下是两种方法的详细说明。 使用 HTML5 原生拖放 A…

vue实现博客

vue实现博客

Vue 实现博客的基本步骤 使用 Vue.js 实现一个博客系统可以分为前端和后端两部分。以下是基于 Vue 的前端实现方案,后端可以选择 Node.js、Django 或其他框架。 项目初始化 使…

vue实现编辑

vue实现编辑

Vue 实现编辑功能 在 Vue 中实现编辑功能通常涉及表单绑定、状态管理和事件处理。以下是一个常见的实现方法: 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定: <i…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 递归组件实现树状结构 递归组件是 Vue 中实现树状结构的常见方法。通过组件自身调用自身,可以轻松构建多层级树状结构。 <template> <u…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…