写一个完美的vue的登录页面
时间: 2023-10-25 15:09:20 浏览: 37
好的,下面是一个简单的Vue登录页面示例:
```vue
<template>
<div class="login">
<form class="login-form" @submit.prevent="login">
<h2>登录</h2>
<div class="form-group">
<label for="email">邮箱:</label>
<input type="email" id="email" v-model="email" required>
</div>
<div class="form-group">
<label for="password">密码:</label>
<input type="password" id="password" v-model="password" required>
</div>
<button type="submit">登录</button>
</form>
</div>
</template>
<script>
export default {
data() {
return {
email: '',
password: ''
}
},
methods: {
login() {
// 在这里处理登录逻辑,可以使用 axios 发送 POST 请求到后端 API
// 例如:axios.post('/api/login', { email: this.email, password: this.password })
// 成功登录后可以跳转到首页
this.$router.push('/')
}
}
}
</script>
<style>
.login {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f5f5f5;
}
.login h2 {
text-align: center;
}
.login-form {
width: 400px;
padding: 20px;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 5px;
}
.form-group input {
width: 100%;
padding: 8px;
border: 1px solid #ccc;
border-radius: 5px;
outline: none;
}
button[type="submit"] {
display: block;
margin: 0 auto;
padding: 8px 16px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 5px;
outline: none;
cursor: pointer;
}
button[type="submit"]:hover {
background-color: #0069d9;
}
</style>
```
在这个示例中,我们使用了 Vue 的单文件组件,其中包含了一个登录表单。在 `data` 中定义了 `email` 和 `password` 两个变量,用于绑定邮箱和密码输入框的值。在 `methods` 中定义了 `login` 方法,用于处理登录逻辑。当用户提交表单时,会触发 `login` 方法,发送 POST 请求到后端 API 进行验证。如果验证成功,就可以使用 Vue Router 跳转到首页。
这个示例中还包含了一些基础的 CSS 样式,用于美化登录页面。当然,你可以根据自己的需求进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)