当前位置:首页 > VUE

vue实现简单登录

2026-01-18 08:54:11VUE

使用 Vue 实现简单登录功能

创建 Vue 项目

确保已安装 Vue CLI,通过以下命令创建新项目:

vue create vue-login-demo

选择默认配置或手动配置(如 Babel、Router 等)。

设计登录页面

src/components 下创建 Login.vue 文件,包含表单和基础样式:

vue实现简单登录

<template>
  <div class="login-container">
    <h3>用户登录</h3>
    <form @submit.prevent="handleSubmit">
      <div class="form-group">
        <label>用户名</label>
        <input v-model="username" type="text" required />
      </div>
      <div class="form-group">
        <label>密码</label>
        <input v-model="password" type="password" required />
      </div>
      <button type="submit">登录</button>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    }
  },
  methods: {
    handleSubmit() {
      console.log('登录信息:', this.username, this.password)
      // 后续添加验证逻辑
    }
  }
}
</script>

<style scoped>
.login-container {
  max-width: 300px;
  margin: 0 auto;
  padding: 20px;
}
.form-group {
  margin-bottom: 15px;
}
</style>

添加路由配置

修改 src/router/index.js,将登录页面设置为路由:

import Login from '../components/Login.vue'

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

实现登录逻辑

handleSubmit 方法中模拟登录验证:

vue实现简单登录

methods: {
  handleSubmit() {
    if (this.username === 'admin' && this.password === '123456') {
      alert('登录成功')
      this.$router.push('/') // 跳转到首页
    } else {
      alert('用户名或密码错误')
    }
  }
}

状态管理(可选)

如需全局管理登录状态,可使用 Vuex:

// src/store/index.js
export default new Vuex.Store({
  state: {
    isLoggedIn: false,
    user: null
  },
  mutations: {
    loginSuccess(state, user) {
      state.isLoggedIn = true
      state.user = user
    }
  }
})

在登录成功后调用:

this.$store.commit('loginSuccess', { username: this.username })

表单验证增强

添加基础表单验证规则:

data() {
  return {
    username: '',
    password: '',
    errors: {}
  }
},
methods: {
  validateForm() {
    this.errors = {}
    if (!this.username) this.errors.username = '请输入用户名'
    if (!this.password) this.errors.password = '请输入密码'
    return Object.keys(this.errors).length === 0
  },
  handleSubmit() {
    if (!this.validateForm()) return
    // 剩余登录逻辑...
  }
}

完整示例结构

vue-login-demo/
├── src/
│   ├── components/
│   │   └── Login.vue
│   ├── router/
│   │   └── index.js
│   └── store/
│       └── index.js (可选)

通过以上步骤可实现包含路由跳转、表单验证和状态管理的登录功能。实际项目中需替换模拟数据为真实 API 调用,并考虑添加 Token 存储等安全措施。

标签: 简单vue
分享给朋友:

相关文章

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项目…

vue轮询实现

vue轮询实现

Vue 轮询实现方法 在 Vue 中实现轮询可以通过以下几种方式: 使用 setInterval data() { return { pollInterval: null }…

vue滚动实现

vue滚动实现

Vue 滚动实现方法 使用原生滚动 在 Vue 中可以通过 ref 获取 DOM 元素,调用原生滚动方法实现滚动效果。适用于简单场景。 <template> <div ref=…

vue 实现脚本

vue 实现脚本

Vue 实现脚本的方法 Vue.js 提供了多种方式来实现脚本功能,包括组件内脚本、混入(Mixins)、插件(Plugins)以及自定义指令等。以下是常见的实现方式: 组件内脚本 在 Vue 单文…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <templ…

vue拖动实现

vue拖动实现

实现 Vue 拖动功能的方法 使用 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的原生拖放 API 实现拖动功能。通过 draggable 属性标记可拖动元素,结合 @dragsta…