使用vue写一个好看的移动端登录页面
时间: 2023-10-06 15:07:06 浏览: 55
抱歉,作为AI语言模型,我无法提供视觉界面相关的代码和设计建议,但是我可以给您提供一些编写Vue登录页面的代码示例和建议:
1. 使用Vue CLI创建一个新的项目
2. 安装Vue Router和axios依赖
3. 在src目录下创建一个views文件夹,用于存放登录页面相关的组件
4. 创建一个Login.vue组件,包含表单和提交按钮
5. 在App.vue中引入Login.vue组件,并使用Vue Router将其作为默认路由
6. 使用axios发送登录请求,并在登录成功后跳转到主页
7. 在Login.vue中添加表单验证,确保用户输入的信息格式正确
8. 设计一个美观的登录页面,使用CSS框架(如Bootstrap或Element)来实现响应式布局
9. 添加动画效果,如登录成功后弹出提示框或跳转动画
以下是一个基本的Login.vue组件示例:
```html
<template>
<div class="login-container">
<form class="login-form">
<h2 class="login-title">登录</h2>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" class="form-control" v-model="username">
<p v-if="usernameError" class="error-message">{{usernameError}}</p>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" class="form-control" v-model="password">
<p v-if="passwordError" class="error-message">{{passwordError}}</p>
</div>
<button class="btn btn-primary" @click.prevent="login">登录</button>
</form>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
username: '',
password: '',
usernameError: '',
passwordError: ''
}
},
methods: {
login() {
if (!this.validate()) {
return
}
axios.post('/api/login', {
username: this.username,
password: this.password
}).then(response => {
if (response.data.success) {
this.$router.push('/')
}
})
},
validate() {
this.usernameError = ''
this.passwordError = ''
if (!this.username) {
this.usernameError = '请输入用户名'
}
if (!this.password) {
this.passwordError = '请输入密码'
}
return !this.usernameError && !this.passwordError
}
}
}
</script>
<style>
.login-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.login-form {
width: 300px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
}
.login-title {
text-align: center;
}
.form-group {
margin-bottom: 20px;
}
.label {
display: block;
margin-bottom: 5px;
}
.form-control {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.btn {
display: block;
width: 100%;
padding: 10px;
border-radius: 5px;
background-color: #007bff;
color: #fff;
}
.btn-primary:hover {
background-color: #0069d9;
}
.error-message {
color: #dc3545;
margin-top: 5px;
}
</style>
```