经典vue2登录注册页面
时间: 2023-12-16 07:28:28 浏览: 119
以下是一个经典的Vue2登录注册页面的示例:
```html
<template>
<div class="login-container">
<div class="login-box">
<h2 class="title">{{ isLogin ? '登录' : '注册' }}</h2>
<form class="form" @submit.prevent="handleSubmit">
<div class="form-item">
<label for="username">用户名</label>
<input type="text" id="username" v-model="username" required>
</div>
<div class="form-item">
<label for="password">密码</label>
<input type="password" id="password" v-model="password" required>
</div>
<div class="form-item" v-if="!isLogin">
<label for="confirm-password">确认密码</label>
<input type="password" id="confirm-password" v-model="confirmPassword" required>
</div>
<button type="submit" class="btn">{{ isLogin ? '登录' : '注册' }}</button>
</form>
<div class="switch" @click="handleSwitch">{{ isLogin ? '没有账号?去注册' : '已有账号?去登录' }}</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isLogin: true,
username: '',
password: '',
confirmPassword: ''
}
},
methods: {
handleSubmit() {
// 处理登录或注册逻辑
if (this.isLogin) {
// 登录
// ...
} else {
// 注册
// ...
}
},
handleSwitch() {
// 切换登录或注册状态
this.isLogin = !this.isLogin
}
}
}
</script>
<style>
.login-container {
display: flex; justify-content: center;
align-items: center;
height: 100vh;
}
.login-box {
width: 400px;
padding: 40px;
border: 1px solid #ccc;
border-radius: 4px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.title {
margin-bottom: 20px;
text-align: center;
}
.form-item {
margin-bottom: 20px;
}
.form-item label {
display: block;
margin-bottom: 5px;
}
.form-item input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
.btn {
display: block;
width: 100%;
padding: 10px;
margin-top: 20px;
background-color: #42b983;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
}
.switch {
margin-top: 20px;
text-align: center;
color: #42b983;
cursor: pointer;
}
</style>
```