vue实现登陆单页面
一 实现页面的布局

1. 首先在components里建一个login.vue
<template>
<div class=login_container>
登陆组件
</div>
</template> <script>
export default { }
</script> <style>
</style>
登陆组件
2. 路由的设置 router下的index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
// 导入login路劲
import login from '@/components/login' Vue.use(VueRouter) export default new VueRouter({
/* 设置路由 */
routes:[
{ path: '/',redirect:'/login'},
{ path: '/login',component: login}
]
})
路由的设置
3. App.vue
<template>
<div id="app">
// *********
<router-view></router-view>
</div>
</template> <script>
export default {
name: 'app',
components:{ } }
</script> <style>
</style>
App.vue设置
4. 整体样式
在assets新建一个global.css
html,body,#app{
height: 100%;
margin: 0;
padding: 0;
}
css文件
在main.js导入
import './assets/css/global.css'
导入css
5. 修改login.vue
<template>
<div class=login_container>
登陆组件
<div class="login_box"></div>
</div>
</template> <script>
export default { }
</script> <style> .login_container{
height: 100%;
background-color: #2b4b6b;
}
.login_box{
width: 450px;
height: 300px;
background-color: #fff;
border-radius: 3px;
position: absolute;
left: 50%;
top:50%;
transform: translate(-50%,-50%); }
</style>
login.vue样式
二 页面绘制头像

<template>
<div class=login_container>
登陆组件
<div class="login_box">
<!-- 头像 -->
<div class="avatar_box">
<img src="../assets/logo.png" alt="">
</div> </div>
</div>
</template> <script>
export default { }
</script> <style> .login_container{
height: 100%;
background-color: #2b4b6b;
}
.login_box{
width: 450px;
height: 300px;
background-color: #fff;
border-radius: 3px;
position: absolute;
left: 50%;
top:50%;
transform: translate(-50%,-50%); }
/* 头像样式开始 */
.avatar_box{
height: 130px;
width: 130px;
border: 1px solid #eee;
border-radius: 50%;
padding: 10px;
box-shadow: 0 0 10px #ddd;
position: absolute;
left:50%;
transform: translate(-50%,-50%);
background-color: #fff;
}
.avatar_box img{
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #eee;
}
/* 头像样式结束 */
</style>
头像样式
三 绘制登陆表单

其实要实现上面的样子 我们就用到了 element-ui 组件
有Button Input Form FormItem 组件
我们是按需要导入
我们在plugins文件下的element.js
import Vue from 'vue'
import { Button } from 'element-ui'
import { Input } from 'element-ui'
import { Form, FormItem } from 'element-ui' Vue.use(Button)
Vue.use(Input)
Vue.use(Form)
Vue.use(FormItem)
element.js
在回到 login.vue
<template>
<div class=login_container>
登陆组件
<div class="login_box">
<!-- 头像 -->
<div class="avatar_box">
<img src="../assets/logo.png" alt="">
</div>
<!-- 表单 -->
<el-form class="login_form">
<!-- 用户名 -->
<el-form-item>
<el-input></el-input>
</el-form-item>
<!-- 密码 -->
<el-form-item>
<el-input></el-input>
</el-form-item>
<!-- 按钮 -->
<el-form-item class="btns">
<el-button type="primary">登陆</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template> <script>
export default { }
</script> <style> .login_container{
height: 100%;
background-color: #2b4b6b;
}
.login_box{
width: 450px;
height: 300px;
background-color: #fff;
border-radius: 3px;
position: absolute;
left: 50%;
top:50%;
transform: translate(-50%,-50%); }
/* 头像样式开始 */
.avatar_box{
height: 130px;
width: 130px;
border: 1px solid #eee;
border-radius: 50%;
padding: 10px;
box-shadow: 0 0 10px #ddd;
position: absolute;
left:50%;
transform: translate(-50%,-50%);
background-color: #fff;
}
.avatar_box img{
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #eee;
}
/* 头像样式结束 */ .btns{
/* position: absolute;
right: 0; */
display: flex;
justify-content: flex-end;
}
.login_form{
position: absolute;
bottom: 0;
/* 占满全屏 */
width: 100%;
/* 边距会超出 用后面那句 box-sizing: border-box; */
padding: 0 20px;
box-sizing: border-box;
}
</style>
表单 element 有样式哟
vue实现登陆单页面的更多相关文章
- Java快速开发平台强大的代码生成器,JEECG 3.7.5 VUE+ElementUI SPA单页面应用版本发布
JEECG 3.7.5 VUE+ElementUI SPA单页面应用版本发布 此版本为Vue+ElementUI SPA单页面应用版本,提供新一代风格代码生成器模板,采用Vue技术,提供两套精美模板E ...
- 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发
每天记录一点:NetCore获得配置文件 appsettings.json 用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...
- day 100天 VUE 父子传值,单页面.
一 .静态资源导入方法 启动服务 npm run serve <template> <div id ="app"> <h3>{{msg}}& ...
- vue如何将单页面改造成多页面应用
问题描述: 手头有一个项目是使用 vue-cli 搭建的单页面应用.项目分为了管理平台和用户查看页面,用户查看页面是很简单的页面,但是在加载过程中,却加载了整个应用的打包代码,量重且影响了响应和体验. ...
- spring boot使用vue+vue-router构建单页面应用
spring boot http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ vue https: ...
- 借助 Vue 来构建单页面应用
原文: https://github.com/MeCKodo/vue-tutorial 主题 Vue.js (1/2)Vue构建单页应用最佳实战 前言 我们将会选择使用一些vue周边的库 1.使用no ...
- vue自动路由-单页面项目(非build时构建)
博客中自动路由的原理? 答:简单点说,就是在请求页面时,根据url进行动态添加路由. 与其它自动路由博客的区别? 目前网上的博客,一般都是在build的时候进行动态路由添加,而本博客,采用的是在获得u ...
- 如何在嵌套的app中运用vue去写单页面H5
本文主要介绍移动端.为了避免移动端兼容出现各种奇奇怪怪的bug,所以秉承着能不用复杂的语法就不用,尽量用最基础的语法. 可用惯了各种ES6语法的童鞋们,写原生真是头疼,再加上各种领导催工期,肯定是内心 ...
- vue-cli搭建vue项目(单页面应用)
1.全局安装vue-cli 2.创建项目: vue init webpack test test是项目名称,会在当前工作目录下新建一个test文件夹 接下来会手动选择一些配置 除了Setup unit ...
随机推荐
- 阿里云oss操作
参考网址 https://blog.csdn.net/qq_22764659/article/details/87969743
- Centos610安装Firefox
yum -y install firefox yum install fonts-chinese yum install fonts-ISO8859-2-75dpi 修改 /etc/sysconfig ...
- 《JavaScript高级程序设计》读书笔记(目录)
ajax创造性的技术让JavaScript变得更加强大起来.ECMAScript 和DOM标准JavaScript面向对象程序设计和继承----性能,优化 1.简介----JavaScript和ECM ...
- python 基础文件操作
实时刷新到硬盘里 f= open('hh','w',encoding='utf8') f.write('gyftyftft') f.write('hghgh\njkkjk') f.flush()#实时 ...
- C++ list结构体变量排序
以下内容是自己整理的根据结构体里面的不同变量,对list排序的实例,若有问题可以留言.仅供参考. #include <iostream> #include <list> #in ...
- yii 框架 – 安全站点和非安全站点的 URL 管理
在本文中我将描述怎么管理安全站点和非安全站点的 URL 管理. 安全站点的内容使用httpsSSL (安全套接字层) 协议发送,而非安全站点使用http协议.为了描述简单,我们称前者https内容/页 ...
- Dubbo与SpringBoot整合流程(从实例入手,附代码下载)
场景 Dubbo环境搭建-管理控制台dubbo-admin实现服务监控: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10362 ...
- STP 指定端口 根端口 区别和理解
不多说,先上图,A为指定端口,B为非指定端口. 看本文的网友应该知道根端口和指定端口的选举,但是对指定端口和根端口的理解不清楚.这里我就略过选举过程,直接描述这两者的区别和存在的意义. 指定端口:转发 ...
- MyBatis插入时获取自增长主键
在某些场景下,我们需要使用mybatis返回生成的主键值.Mybatis在insert和update标签中就提供了这种功能. 方法1: <insert id=”indetifyId” useGe ...
- CyclicBarrier 解读
简介 字面上的意思: 可循环利用的屏障. 作用: 让所有线程都等待完成后再继续下一步行动. 举例模拟: 吃饭人没到齐不准动筷. 使用Demo package com.ronnie; import ja ...