当前位置:首页 > VUE

html实现vue登陆

2026-02-24 10:54:16VUE

HTML 实现 Vue 登录页面

以下是一个简单的 HTML 实现 Vue 登录页面的示例代码,包含基本的表单验证和提交逻辑。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue Login Page</title>
    <!-- 引入 Vue.js -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <!-- 引入样式 -->
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f9;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        .login-container {
            background: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            width: 300px;
        }
        .login-container h2 {
            margin-bottom: 20px;
            text-align: center;
            color: #333;
        }
        .form-group {
            margin-bottom: 15px;
        }
        .form-group label {
            display: block;
            margin-bottom: 5px;
            color: #555;
        }
        .form-group input {
            width: 100%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 4px;
            box-sizing: border-box;
        }
        .error-message {
            color: red;
            font-size: 12px;
            margin-top: 5px;
        }
        button {
            width: 100%;
            padding: 10px;
            background-color: #007BFF;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
        }
        button:hover {
            background-color: #0056b3;
        }
    </style>
</head>
<body>
    <div id="app">
        <div class="login-container">
            <h2>Login</h2>
            <form @submit.prevent="handleSubmit">
                <div class="form-group">
                    <label for="username">Username</label>
                    <input 
                        type="text" 
                        id="username" 
                        v-model="username" 
                        @blur="validateUsername"
                        placeholder="Enter your username">
                    <div class="error-message" v-if="errors.username">
                        {{ errors.username }}
                    </div>
                </div>
                <div class="form-group">
                    <label for="password">Password</label>
                    <input 
                        type="password" 
                        id="password" 
                        v-model="password" 
                        @blur="validatePassword"
                        placeholder="Enter your password">
                    <div class="error-message" v-if="errors.password">
                        {{ errors.password }}
                    </div>
                </div>
                <button type="submit">Login</button>
            </form>
        </div>
    </div>

    <script>
        new Vue({
            el: '#app',
            data: {
                username: '',
                password: '',
                errors: {
                    username: '',
                    password: ''
                }
            },
            methods: {
                validateUsername() {
                    if (!this.username) {
                        this.errors.username = 'Username is required';
                    } else {
                        this.errors.username = '';
                    }
                },
                validatePassword() {
                    if (!this.password) {
                        this.errors.password = 'Password is required';
                    } else if (this.password.length < 6) {
                        this.errors.password = 'Password must be at least 6 characters';
                    } else {
                        this.errors.password = '';
                    }
                },
                handleSubmit() {
                    this.validateUsername();
                    this.validatePassword();

                    if (!this.errors.username && !this.errors.password) {
                        alert('Login successful!');
                        // 这里可以添加实际的登录逻辑,比如发送请求到后端
                    }
                }
            }
        });
    </script>
</body>
</html>

代码说明

  1. Vue 实例
    创建了一个 Vue 实例,绑定到 #app 元素,管理登录表单的数据和逻辑。

  2. 数据绑定
    使用 v-model 双向绑定用户名和密码输入框的值到 Vue 实例的 data 属性。

    html实现vue登陆

  3. 表单验证

    • validateUsername 方法检查用户名是否为空。
    • validatePassword 方法检查密码是否为空且长度是否至少为 6 个字符。
    • 错误信息通过 errors 对象动态显示。
  4. 表单提交

    html实现vue登陆

    • 使用 @submit.prevent 阻止表单默认提交行为。
    • handleSubmit 方法在提交时验证表单,如果验证通过则显示成功提示。
  5. 样式
    简单的 CSS 样式使登录页面看起来更美观。

扩展功能

如果需要更复杂的功能,可以考虑以下扩展:

  • 添加记住密码功能。
  • 集成后端 API 进行实际登录验证。
  • 添加加载状态和错误提示。

标签: htmlvue
分享给朋友:

相关文章

vue实现异步

vue实现异步

Vue 实现异步操作的常见方法 Vue 提供了多种方式来处理异步操作,包括数据获取、事件处理等场景。 使用 async/await 在 Vue 方法中可以直接使用 async/await 语法处理异…

vue alert实现

vue alert实现

使用 Vue 实现 Alert 组件 在 Vue 中实现 Alert 组件可以通过自定义组件或结合第三方库完成。以下是几种常见方法: 自定义 Alert 组件 创建一个可复用的 Alert 组件,通…

vue能实现

vue能实现

Vue.js 是一个流行的前端框架,能够实现多种功能。以下是 Vue 能够实现的主要功能和特性: 响应式数据绑定 Vue 的核心特性之一是响应式数据绑定。通过数据驱动视图,当数据发生变化时,视图会自…

vue实现表白

vue实现表白

Vue 实现表白页面 使用 Vue 可以快速创建一个动态、交互式的表白页面。以下是一个简单的实现方案: 基础结构 创建一个 Vue 项目或单文件组件,包含以下核心部分: <template&…

vue实现粘贴

vue实现粘贴

Vue 实现粘贴功能的方法 在 Vue 中实现粘贴功能通常涉及监听粘贴事件并处理剪贴板数据。以下是几种常见的实现方式: 监听原生粘贴事件 通过 @paste 指令或原生 addEventListen…

vue实现购票

vue实现购票

Vue 实现购票功能 数据结构设计 购票功能通常需要以下数据结构: 场次信息(时间、地点、价格) 座位信息(可选座位、已售座位) 用户订单信息 示例数据结构: data() { return…