登录界面
基于vue-router实现
演示界面 https://zpliu1126.github.io/LearnJs/html/login.html
首先router中定义好了路由
const router = new VueRouter({
routes: [{ path: "/", redirect: "/home" },
{ path: '/home', component: home, },
{ path: '/register', component: register },
{ path: '/home/news', component: news },
{ path: '/blog', component: blog },
{ path: '/login', component: login },
]
})
export default router
使用
blog.vue
组件作为首页在blog.vue组件中放置路由出口,当路由发生改变时转变页面
<div class="blog-container"> <router-view></router-view> </div>
当路由中使用到
/login/
时,将会在路由出口进行渲染登录组件
login.vue
<div id="loginContainer"> <div class="card"> <div class="card-header"> Weclome To Github </div> <div class="card-body"> <form action="#"> <div class="form-group"> <label for=""> Account </label> <input type="text" class="form-control" required placeholder="Tel phone number or email"> </div> <div class="form-group"> <label for=""> password </label> <input type="password" class="form-control" required placeholder="At least five character"> </div> <button class="form-control btn" type="submit" style="">login</button> </form> </div> </div> </div> </div>
接下来就是交给css和js的活了
用到了flex弹性布局
flex-direction 垂直方向布局
align-items 交叉轴方向,居中
justify-content 主轴方向居中
#loginContainer {
color: white;
height: 100vh;
border-top: solid 2px darkred;
display: flex;
flex-direction: column;
height: 100vh;
justify-content: center;
align-items:center;
background: rgb(41, 45, 62) url(https://43423.oss-cn-beijing.aliyuncs.com/img/20190921231830.svg);
background-repeat: repeat-y;
background-size:cover;
}
.form-group{
min-height: 100px;
}
form input[type="text"], input[type="password"]{
border:none;
border-bottom: solid 2px red;
width: 100%;
height: 40px;
padding:10px;
transform: border-bottom 0.5s;
}
form input[type="text"]:focus, input[type="password"]:focus{
border-bottom:solid 2px blue;
}
form input[type="text"]:hover, input[type="password"]:hover{
border-bottom:solid 2px blue;
}
.form-group label{
font-size: 20px;
}
button.form-control{
background: #fafafa;
border: none;
border-radius: 0.6;
}
.card-header{
text-align: start;
font-size: 20px;
margin: 20px 0;
}
form button[type="submit"]{
height: 40px;
width: 60px;
background-color:#67cd0a;
color: #fafafa;
}
form button[type="submit"]:hover{
height: 40px;
width: 60px;
background-color:#cd170a;
color: #fafafa;
}
vue中进行密码的验证
## 提交按钮监听点击事件 <button class="form-control btn" v-on:click="login($event)" >login</button> ## 传递事件对象,用于阻止默认的form表单提交 ## 在methods中定义登录处理函数 export default{ data() { return { requsetToast:null } }, methods:{ login(event){ event.preventDefault(); this.requsetToast=Toast({ message: '登录ing', position: 'top', duration: -1 }); } }, }
Last updated