vue登录功能前端页面
时间: 2023-09-17 11:14:57 浏览: 34
以下是Vue登录功能前端页面的示例代码:
```html
<template>
<div class="login-container">
<h1>登录</h1>
<form>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" v-model="username" required>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" v-model="password" required>
</div>
<button type="submit" @click.prevent="login">登录</button>
</form>
<div v-if="errorMessage" class="error-message">{{ errorMessage }}</div>
</div>
</template>
<script>
export default {
name: 'Login',
data() {
return {
username: '',
password: '',
errorMessage: '',
};
},
methods: {
login() {
// 发送登录请求
axios.post('/api/login', {
username: this.username,
password: this.password,
})
.then(response => {
// 登录成功,跳转到首页
this.$router.push('/');
})
.catch(error => {
// 登录失败,显示错误信息
this.errorMessage = error.response.data.message;
});
},
},
};
</script>
<style>
.login-container {
width: 400px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
}
form {
display: flex;
flex-direction: column;
}
.form-group {
margin-bottom: 10px;
}
label {
font-weight: bold;
}
input[type="text"],
input[type="password"] {
padding: 5px;
border-radius: 5px;
border: 1px solid #ccc;
}
button[type="submit"] {
padding: 5px;
border-radius: 5px;
border: none;
background-color: #007bff;
color: #fff;
cursor: pointer;
}
.error-message {
color: red;
margin-top: 10px;
}
</style>
```
此示例代码中,包含一个登录表单,用户名和密码分别绑定到`username`和`password`属性上,登录按钮绑定了`login`方法。登录方法中,使用`axios`发送登录请求,若登录成功,则跳转到首页;若登录失败,则显示错误信息。如果出现错误,错误信息会被绑定到`errorMessage`属性上,并在页面上显示。