当前位置:首页 > VUE

vue实现简单登录功能

2026-02-22 10:17:21VUE

创建Vue项目

使用Vue CLI初始化项目,确保已安装Node.js和Vue CLI。

npm install -g @vue/cli
vue create vue-login-demo
cd vue-login-demo
npm run serve

设计登录表单

src/components下创建Login.vue,包含用户名、密码输入框和提交按钮。

<template>
  <div>
    <h3>登录</h3>
    <form @submit.prevent="handleSubmit">
      <input v-model="username" placeholder="用户名" type="text" required />
      <input v-model="password" placeholder="密码" type="password" required />
      <button type="submit">登录</button>
    </form>
    <p v-if="errorMessage" class="error">{{ errorMessage }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: '',
      errorMessage: ''
    };
  },
  methods: {
    handleSubmit() {
      if (this.username === 'admin' && this.password === '123456') {
        alert('登录成功');
        this.$router.push('/dashboard'); // 假设有路由跳转
      } else {
        this.errorMessage = '用户名或密码错误';
      }
    }
  }
};
</script>

<style scoped>
.error { color: red; }
</style>

配置路由

安装Vue Router并配置登录页路由。

npm install vue-router

src/router/index.js中设置路由:

vue实现简单登录功能

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

const routes = [
  { path: '/login', component: Login },
  // 其他路由...
];

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

export default router;

状态管理(可选)

使用Vuex或Pinia管理登录状态。以Pinia为例:

npm install pinia

创建src/stores/auth.js

vue实现简单登录功能

import { defineStore } from 'pinia';

export const useAuthStore = defineStore('auth', {
  state: () => ({
    isAuthenticated: false,
    user: null
  }),
  actions: {
    login(username, password) {
      if (username === 'admin' && password === '123456') {
        this.isAuthenticated = true;
        this.user = { username };
        return true;
      }
      return false;
    }
  }
});

Login.vue中调用:

import { useAuthStore } from '../stores/auth';

export default {
  setup() {
    const authStore = useAuthStore();
    const handleSubmit = () => {
      if (authStore.login(username.value, password.value)) {
        router.push('/dashboard');
      }
    };
    return { handleSubmit };
  }
};

表单验证增强

使用Vuelidate或原生验证提升用户体验:

npm install vuelidate

示例规则:

import { required, minLength } from 'vuelidate/lib/validators';

export default {
  validations: {
    username: { required },
    password: { required, minLength: minLength(6) }
  }
};

安全注意事项

  • 实际项目中需后端验证,避免前端硬编码凭证。
  • 使用HTTPS传输敏感数据。
  • 密码应加密存储(如bcrypt)。

标签: 简单功能
分享给朋友:

相关文章

vue实现注册功能

vue实现注册功能

实现注册功能的基本步骤 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是常见的实现方式: 创建注册表单组件 <template> <div class…

vue实现聊天功能

vue实现聊天功能

Vue实现聊天功能的方法 使用WebSocket实现实时通信 安装WebSocket客户端库如socket.io-client,在Vue组件中建立连接。创建一个消息列表和数据输入框,通过WebSock…

实现简单vue

实现简单vue

实现一个简单的 Vue 框架 数据响应式系统 通过 Object.defineProperty 实现数据劫持,监听数据变化: function defineReactive(obj, key, va…

原生实现vue功能

原生实现vue功能

原生 JavaScript 实现 Vue 核心功能 使用原生 JavaScript 模拟 Vue 的核心功能(如数据绑定、虚拟 DOM、响应式更新等),可以通过以下方式实现: 数据响应式系统 通过…

vue修改功能实现

vue修改功能实现

Vue 修改功能的实现方法 修改功能是 CRUD 操作中的重要部分,在 Vue 中可以通过多种方式实现。以下是几种常见的实现方案: 数据绑定与表单处理 使用 v-model 实现双向数据绑定,快速获…

php秒杀功能的实现

php秒杀功能的实现

秒杀功能的核心设计 高并发场景下秒杀系统的核心在于解决超卖问题和性能瓶颈。需要结合缓存、队列、锁机制等技术实现。 数据库设计 商品表需包含库存字段,例如: CREATE TABLE `seckil…