帮我实现一个登录页,vue3、elmentplus、vuerouter我已经安装好
时间: 2024-02-02 08:02:48 浏览: 22
好的,下面是一个使用 Vue 3、Element Plus 和 Vue Router 实现登录页的示例代码:
1. 在 `src/views` 文件夹下创建一个名为 `Login.vue` 的登录组件:
```vue
<template>
<div class="login-container">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="top">
<el-form-item label="用户名" prop="username">
<el-input v-model="loginForm.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input type="password" v-model="loginForm.password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="login">登录</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
name: 'Login',
data() {
return {
loginForm: {
username: '',
password: ''
},
loginRules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' }
]
}
};
},
methods: {
login() {
this.$refs.loginForm.validate(valid => {
if (valid) {
// 登录逻辑,可以发送请求到后端进行验证
console.log('登录成功');
// 登录成功后跳转到首页
this.$router.push('/');
} else {
console.log('表单验证失败');
}
});
}
}
};
</script>
<style scoped>
.login-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
</style>
```
2. 在 `src/router/index.js` 文件中配置路由:
```javascript
import { createRouter createWebHistory } from 'vue-router';
import Login from '@/views/Login.vue';
import Home from '@/views/Home.vue';
const routes = [
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/',
name: 'Home',
component: Home
}
];
const router = createRouter({
history: createWebHistory(),
routes
});
export default router;
```
3. 在 `src/main.js` 文件中引入 Vue、Vue Router 和 Element Plus,并将路由挂载到根组件上:
```javascript
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import 'element-plus/lib/theme-chalk/index.css';
createApp(App).use(router).mount('#app');
```
现在,你可以访问 `/login` 路径来查看登录页,并填写表单进行登录操作。登录成功后会跳转到根路径 `/`,你可以在 `Home.vue` 组件中编写你的首页内容。
请确保已经正确安装了 Vue 3、Element Plus 和 Vue Router,并在入口文件中正确引入了它们。