当前位置:首页 > 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.js 作为前端框架,结合 WebRTC 技术实现实时音视频通信。常用的库包括: peerjs:简化 WebRTC 的点对点连接。 socket.io:…

vue实现用户信息删除

vue实现用户信息删除

Vue 实现用户信息删除功能 在 Vue 中实现用户信息删除功能通常涉及前端界面交互和后端 API 调用。以下是实现步骤: 前端界面设计 创建删除按钮或操作项,通常使用 @click 事件触发删除…

vue实现app

vue实现app

Vue 实现 App 的常见方法 使用 Vue 开发移动端 App 主要有两种主流方案:混合开发(Hybrid)和原生渲染。以下是具体实现方式和工具链: 混合开发方案(WebView 嵌入) 通过…

vue router 实现

vue router 实现

Vue Router 的实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的核心实现方式。 安装 Vue Router 通过…

vue 实现回复

vue 实现回复

Vue 实现回复功能 在 Vue 中实现回复功能通常涉及表单提交、数据绑定和列表渲染。以下是实现步骤和代码示例: 数据绑定与表单 <template> <div>…

vue 全景实现

vue 全景实现

Vue 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…