当前位置:首页 > 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 属性。

  3. 表单验证

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

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

扩展功能

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

html实现vue登陆

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

标签: htmlvue
分享给朋友:

相关文章

vue实现新闻

vue实现新闻

Vue 实现新闻功能 使用 Vue 实现新闻功能通常涉及新闻列表展示、新闻详情页、分类筛选等模块。以下是实现的基本思路和代码示例。 新闻列表展示 通过 Vue 组件展示新闻列表,通常使用 v-for…

vue实现粘贴

vue实现粘贴

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

vue实现选择

vue实现选择

Vue 实现选择功能的方法 在 Vue 中实现选择功能可以通过多种方式完成,以下介绍几种常见的实现方法。 使用 v-model 绑定单选 通过 v-model 可以轻松实现单选功能。以下是一个简单的…

vue 实现登录

vue 实现登录

Vue 实现登录功能 创建登录表单组件 在 Vue 项目中创建一个登录表单组件(如 Login.vue),包含用户名和密码输入框以及提交按钮。使用 v-model 实现双向数据绑定。 <tem…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue实现展开

vue实现展开

展开功能的实现方法 在Vue中实现展开功能可以通过多种方式完成,常见的有使用v-show、v-if指令,结合CSS过渡动画或第三方组件库。 使用v-show控制显示隐藏 通过v-show指令可以简单…