当前位置:首页 > VUE

vue实现登录页面

2026-01-19 18:37:50VUE

创建登录页面结构

使用 Vue 单文件组件(.vue)构建登录页面的基础结构,包含表单、输入框和按钮:

<template>
  <div class="login-container">
    <h1>用户登录</h1>
    <form @submit.prevent="handleSubmit">
      <div class="form-group">
        <label for="username">用户名</label>
        <input 
          type="text" 
          id="username" 
          v-model="form.username" 
          placeholder="请输入用户名"
        />
      </div>
      <div class="form-group">
        <label for="password">密码</label>
        <input 
          type="password" 
          id="password" 
          v-model="form.password" 
          placeholder="请输入密码"
        />
      </div>
      <button type="submit">登录</button>
    </form>
  </div>
</template>

定义数据与事件处理

<script> 部分初始化表单数据并实现提交逻辑:

vue实现登录页面

<script>
export default {
  data() {
    return {
      form: {
        username: '',
        password: ''
      }
    }
  },
  methods: {
    handleSubmit() {
      // 验证输入
      if (!this.form.username || !this.form.password) {
        alert('请输入用户名和密码');
        return;
      }

      // 模拟登录请求
      console.log('提交数据:', this.form);
      // 实际项目中替换为 axios 请求
      // this.$http.post('/api/login', this.form).then(...)
    }
  }
}
</script>

添加基础样式

<style> 中定义页面样式(支持 SCSS 或 CSS):

<style scoped>
.login-container {
  max-width: 400px;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 4px;
}
.form-group {
  margin-bottom: 15px;
}
label {
  display: block;
  margin-bottom: 5px;
}
input {
  width: 100%;
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
}
button {
  width: 100%;
  padding: 10px;
  background-color: #42b983;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
</style>

集成路由跳转

若项目使用 Vue Router,登录成功后跳转到主页:

vue实现登录页面

methods: {
  handleSubmit() {
    // 模拟登录成功
    this.$router.push('/dashboard'); 
  }
}

表单验证增强

使用 VeeValidate 或 Element UI 等库实现高级验证:

<template>
  <input 
    v-model="form.username"
    v-validate="'required|min:3'"
    name="username"
  />
  <span v-if="errors.has('username')">{{ errors.first('username') }}</span>
</template>

<script>
import { Validator } from 'vee-validate';
export default {
  // 注册验证规则
  created() {
    Validator.extend('username', {
      validate: value => /^[a-zA-Z0-9_]+$/.test(value),
      message: '用户名只能包含字母、数字和下划线'
    });
  }
}
</script>

响应式布局优化

通过媒体查询适配移动端:

@media (max-width: 600px) {
  .login-container {
    width: 90%;
    margin-top: 20px;
  }
}

标签: 页面vue
分享给朋友:

相关文章

vue实现本地数据存储

vue实现本地数据存储

使用 localStorage 或 sessionStorage Vue 中可以直接调用浏览器提供的 localStorage 或 sessionStorage API 进行数据存储。localSto…

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

vue实现addclass

vue实现addclass

Vue 实现动态添加 class 的方法 在 Vue 中动态添加 class 可以通过多种方式实现,以下是常见的几种方法: 使用对象语法 通过绑定一个对象到 :class,可以动态切换 class…

vue实现watch

vue实现watch

监听数据变化 在Vue中,watch用于监听响应式数据的变化并执行回调函数。基本语法如下: watch: { propertyName(newValue, oldValue) { //…

vue实现项目

vue实现项目

Vue 项目实现指南 环境准备 确保已安装 Node.js(建议版本 14+)和 npm/yarn。通过以下命令检查版本: node -v npm -v 创建 Vue 项目 使用 Vue CLI 快…

vue实现修改

vue实现修改

Vue 实现修改功能的方法 在 Vue 中实现修改功能通常涉及表单绑定、状态管理和 API 调用。以下是几种常见实现方式: 双向数据绑定实现表单修改 使用 v-model 指令绑定表单元素与组件数据…