基本布局已经有了, 现在我们来开始做我们的注册页面~
当然需要注册才能发表文章啊(糟老头子坏得很, 我可以只有我一个人能发啊)。

这里我们设定只有注册才能发表文章,也就淡化了管理员这个概念。在开发中先将原型做出来,然后再对其进行迭代、重构来达到我们最终想要的效果。

准备

  1. 新建 vue 组件,编写注册页面的代码

  2. 为这个组件建立路由对象

这里我们依旧是采用 ElementUI 中的组件,因为是注册,需要提交表单。

因此我们来看看 ElementUI 中表单组件相关的文档:

官方文档:点击查看

实现登录页面

首先先在 views 目录下新建 Signup.vue组件。

然后编写视图代码:

<template><div><el-form><el-form-item prop="username" label="用户名"><el-input></el-input></el-form-item><el-form-item prop="password" label="密码"><el-input type="password"></el-input></el-form-item><el-form-item prop="rePassword" label="确认密码"><el-input type="password"></el-input></el-form-item><el-form-item><el-button type="primary" size="small">注册</el-button></el-form-item></el-form></div>
</template><script>export default {name: "Signup"}
</script><style scoped></style>

这里只是实现了页面, 还没有实现其他的逻辑。

建立路由对象

其实路由对象应该和组件建立一起,当你的组件新建之后,就应该去为它建一个路由对象。

这样你能够边写代码,边看实际效果。

import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'Vue.use(Router)export default new Router({routes: [{path: '/',name: 'home',component: Home},{path: '/about',name: 'about',component: () => import(/* webpackChunkName: "about" */ './views/About.vue')},{path: '/signup',name: 'signup',component: () => import('./views/Signup.vue')}]
})

好了, 现在我们可以来看看效果:

这个效果有点感人啊,整个元素全部铺开在页面上,完全没有用户体验了。

不行, 我们得改改,虽说不是专业的设计师。但是基本的设计还是要有的

重构布局

这里我们依旧在 ElementUI 中查找看是否有现成的解决方案:

布局文档:点击查看

很好, 这里我们可以利用 el-row, el-col 来进行布局。

它是基于24分栏的栅栏布局,我们想要让这个表单居中应该怎么办呢?

要居中的话, 左右两边的栅栏数相等即可,也就实现了表单这个块元素是位于水平居中的。

代码:

<template><div><el-row><el-col :span="6" :offset="9"><el-form label-width="80px"><el-form-item prop="username" label="用户名"><el-input></el-input></el-form-item><el-form-item prop="password" label="密码"><el-input type="password"></el-input></el-form-item><el-form-item prop="rePassword" label="确认密码"><el-input type="password"></el-input></el-form-item><el-form-item><el-button type="primary" size="small">注册</el-button></el-form-item></el-form></el-col></el-row></div>
</template><script>export default {name: "Singup"}
</script><style scoped></style>

上面代码中的 69都是计算得来的,总共是24,左右两边又要相等,那么中间的表单占用了 6格,还剩下18格。平分下来每边就是9格了。

现在效果就好很多了:

编写登录逻辑

页面已经完成, 剩下的就是编写注册逻辑:

  • 点击注册,首先验证密码和确认密码是否一致

  • 密码一致则向后端接口发起请求

这里的接口我们使用 postman 模拟出来的接口。

在这之前我们先把数据定义一下, 并且绑定到表单元素中去:

data() {return {model: {username: '',password: '',rePassword: ''}};
},
<template><div><el-row><el-col :span="6" :offset="9"><el-form label-width="80px"><el-form-item prop="username" label="用户名"><el-input v-model="model.username"></el-input></el-form-item><el-form-item prop="password" label="密码"><el-input type="password" v-model="model.password"></el-input></el-form-item><el-form-item prop="rePassword" label="确认密码"><el-input type="password" v-model="model.rePassword"></el-input></el-form-item><el-form-item><el-button type="primary" size="small">注册</el-button></el-form-item></el-form></el-col></el-row></div>
</template>

首先给注册按钮添加对应事件:

<el-button type="primary" size="small" @click="submit">注册</el-button>

然后在 methods 中实现此函数:

submit() {if(this.model.password !== this.model.rePassword){this.$message.error('两次出入密码不一致.');return ;}axios.post('https://451ece6c-f618-436b-b4a2-517c6b2da400.mock.pstmn.io/signup', this.model).then(res => {if(res.data.Code === 200){this.$message.success("注册成功");}});
}

实际效果:

这段逻辑中使用了 axios 库用来向后端接口发起异步请求,具体的使用方式可以查阅官方文档:

看云文档

到底为止,注册功能算是完成了80%了,剩下的等把登录页面写完之后,再加上:

  • 注册成功后跳转到登录页面即可

转载于:https://www.cnblogs.com/By-ruoyu/p/11190854.html

浅入深出Vue:注册相关推荐

  1. 浅入深出Vue:环境搭建

    浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...

  2. 浅入深出Vue:文章编辑

    登录与注册功能都已经实现,现在是时候来开发文章编辑功能了. 这里咱们就使用 markdown 作为编辑语言吧,简洁通用.那么我们就需要找一下 markdown 的编辑器组件了,而且还要支持 vue噢. ...

  3. 浅入深出Vue:子组件与数据传递

    上一篇了解了组件的概念及在使用中需要注意的地方.在面对单个组件逻辑复杂需要拆分时,难免会遇到父子组件之间数据传递的问题.那么我们来了解一下在父子组件之间进行数据传递时需要遵循哪些约定,以及要注意哪些问 ...

  4. 浅入深出Vue:事件处理

    上一篇的最后留下了一个 v-on的思考,也就是本章的主题:事件处理 为什么需要事件处理 在前端开发中,经常要面对各种表单.按钮.而这里面就住着一个事件:点击 (click). 前端童鞋们肯定不陌生它, ...

  5. 浅入深出Vue:发布项目

    项目完成之后,当然不能满足于在我们的开发环境下跑一跑.我们可以打包发布到服务器上,让大家一起来欣赏一下你的作品. 那么 vue 项目如何打包发布呢,新建的项目目录下通常都有一个 README.md 的 ...

  6. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

  7. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

  8. Angular浅入深出系列 - 写在前面

    本系列目录: 写在前面 基础知识 控制器(Controller) 作用域(Scope) 集合(Collection) 模块(Module) 依赖注入(Dependency Injection) 服务( ...

  9. 处理中文乱码_浅入深出:一次提问引发的深思,从此再也不怕“乱码”问题

    这是恋习Python之浅入深出系列第3篇原创首发文章 作者|丁彦军 来源|恋习Python(ID:sldata2017) 转载请联系授权(微信ID:2394608316) 近日,有位粉丝向我请教,在爬 ...

最新文章

  1. <a>标签带参数跳转并在下一个页面接收
  2. 为什么 Django 能持续统治 Python 开发世界
  3. 《Java程序书面采访猿收藏》之 instanceof的作用是什么
  4. Excel2019(Office 2019)导入数据网页(文本txt)无法显示以前样式的问题(终极解决方案)
  5. jQuery中的几个案例:隔行变色、复选框全选和全不选
  6. leetcode455. 分发饼干(贪心算法)
  7. java关键字:volatile
  8. 剑指 Offer II 106. 二分图
  9. 完整简单的红黑树算法
  10. memset()的用法
  11. eclipse在线汉化站点
  12. simulink模型动静态测试
  13. Excel小技巧-获取列数
  14. OSChina 周二乱弹 ——普通高等男友招生考试
  15. MAC直接的剪切快捷键
  16. 名帖33 赵孟頫 隶书《千字文》
  17. c#中https通讯如何添加证书
  18. 特征锦囊:怎么找出数据集中有数据倾斜的特征?
  19. 开发一个短信推送工具需要怎么做
  20. 百度研究院发布2022科技趋势预测,涵盖三大层面、十大领域

热门文章

  1. Lua虚拟机中的数据结构与栈
  2. 题解-bzoj3901 棋盘游戏
  3. 反射生成 INSERT 多个对象的 SQL 语句(批量插入)
  4. Netty实战一之异步和事件驱动
  5. 【计算机网络】物理层设备功能浅析
  6. 2017前端大厂踩坑经验
  7. PhpExcel数组输出到Excel浏览器下载
  8. Js调用游览器的外部方法(设首页,收藏夹等游览器操作)
  9. sqlserver调用msxml3.dll中的xmlhttp对象
  10. Scala 面向对象编程