Vue电商后台实战--登录界面

具体教程可看:B站vue电商管理后台(悄悄说一下 课程很良心)
在这里插入图片描述
组件:ELment-UI中form表单组件

结构:
一个登录框:logo(设置水平居中+垂直上移50%)和登录表单(el-form表单)
背景区域高度设置100%

知识点:
1.水平、垂直居中总结
2.阴影

box-shadow:h-shadow v-shadow blur spread color inset

blur:模糊距离
spread:阴影尺寸
inset:内阴影 可以改为 outset 外阴影

3.el-form的使用

  <el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules" label-width="0px" class="login-form">
                <!-- 用户名 -->
                <!-- 校验 -->
                <el-form-item prop="username">
                    <!-- 进行双向数据绑定 将登录名和登录密码 绑定到loginForm上 -->
                    <el-input v-model="loginForm.username" prefix-icon="incofont icon-user"></el-input>
                </el-form-item>
                <!-- 密码 -->
                <el-form-item prop="password">
                    <el-input v-model="loginForm.password" type="password" prefix-icon="iconfont icon-3702mina"></el-input>
                </el-form-item>
                <el-form-item class="btns">
                    
                    <el-button type="primary" @click="login">登录</el-button>
                    <!--重置表单 获取到表单元素 使用 resetFields方法重置表单内容-->
                    <el-button type="info" @click="resetLoginForm">重置</el-button>
                </el-form-item>
            </el-form>

表单数据绑定v-model="loginForm"
el-form-input
登录名: v-model=“loginForm.username”
密码:绑定到 v-model=“loginForm.password”
表单规则绑定v-rules="loginFormRules"
表单元素el-input使用 prop绑定到对应的对应的表单规则上
表单引用ref="loginFormRef"

vue实例的data属性中定义:

data(){
	return {
	//表单数据绑定
	loginForm:{
		username:'admin',
		password:'123456',
	},
	//表单验证规则
	 loginFormRules:{
                username:[
                    { required: true, message: '请输入登录名称', trigger: 'blur' },
                    { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
                ],
                password:[
                    { required: true, message: '请输入登录密码', trigger: 'blur' },
            { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
                ]

            }
	}
}

事件:

  1. 点击登录按钮,表单验证通过发起请求,响应成功,取出响应中的token保存到sessionStorage中(保留用户状态,以便下次使用),最后使用路由导航到后台首页。
  2. 点击重置按钮,表单清空,恢复默认设置
 methods:{
 //重置表单
 resetLoginForm(){
	//	获取表单引用,调用事件resetFields()重置表单
	this.$refs.loginFormRef.resetFields();
},
 //登录验证
 	login(){
 		this.$refs.loginFormRef.validate(aysnc valid=>{
 			if(!valid) return;
 			//发起的请求,返回的数据是promise对象,从对象中解构出data 赋值给res
 			const {data:res}=await this.$http.get("login");
 			if(res.meta.status!== 200) return this.$message.error('请输入正确信息');
 			//将返回的token存储再本地
 			window.sessionStorage.setItem('token',res.data.token);
 			//编程式路由导航
 			this.$router('/home');
 		})
 	}
 }

4.iconfont图标引入
推荐:vue 中使用iconfont(阿里巴巴图标库),解决iconfont 只显示小方框的问题
5.路由
路由占位符:<router-view></router-view>
路由重定向:redirect
将默认地址重定向到登录界面

routes:[
{path:'/',redirect:'/login'},
//{path:"/",redirect:{name:'login'}}与上面的效果一样 使用name属性,设置路由重定向
{path:'/login',name:'login',component:Login}
]

编程式路由导航

this.$router.push()

会向history添加一条新纪录
参数可以是字符串地址或对象
具体参考:编程式路由导航
注:参数设置里,由path,params就无效;可以将参数放在path上
路由导航守卫:在项目中,判断是否携带服务器返回保存到sessionStorage中的token值监听登录界面到后台的路由跳转

router.beforeRouterUpdate(to,from,next){
	//to表示来的网页地址
	//from表示下面要跳转到的网页地址
	//next()放行,如果不符合条件 强制跳转到指定页面next(path)
	if(to.path === '/login') return next();
	const tokenStr=window.sessionStorage.getItem('token');
	if(!tokenStr) next('/login');
	next();
}

7.git
切换并创建login分支:git checkout -b login
工作区添加到暂存区:git add .
暂存区提交到git仓库:git commit -m '完成登录界面的开发'.
推送到github中:git push -u origin login
(第一次推送使用 -u ,如果已经github中已经存在login分支,可以直接git push)
切换到master分支:git checkout master
将login分支合并到master:git merge login
将master分支的内容推送到远端github:git push
查看仓库状态:git status
查看分支:git branch
git学习

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值