注册功能实现流程

💂 个人网站:【紫陌】【笔记分享网】
💅 想寻找共同学习交流、共同成长的伙伴,请点击【前端学习交流群】

注册实现流程

1.看接口文档

需要带两个参数 还是post请求
请求URL:/api/reguser
请求方式:POST
请求体:

参数名必选类型说明
usernamestring用户名
passwordstring密码

2.书写接口

api接口同一文件书写接口

	src
	├── api
	     ├── index.js 	(api接口同一管理)

index.js

//api接口同一管理
import requests from "./request";

//注册接口
//   /reguser    请求方式:POST
export const reqRegister = (data) =>requests({ url: "/api/reguser", method: "POST", data});

接口要求带两个参数,我这里形参只写了datadata是一个对象,实参是data:data触发了ES6的简写只写data就可以,传参数传对象就可以了。

3.挂载API

第一种方法
要让任意组件可以使用API相关的接口,所以要在mian.js文件挂载在Vue的原型(组件实例的原型的原型指向的是Vue.prototype

main.js

//引入相关API请求接口
import * as API from "./api/index";
//组件实例的原型的原型指向的是Vue.prototype
//任意组件可以使用API相关的接口
Vue.prototype.$API = API;

第二种方法
哪个组件想调用接口,就引入哪个接口函数
例如:
demo.vue

//引入接口函数
import { reqRegister  } from "@/api";
//然后就可以调用使用了

我这里演示第一种第一种(方便一点)

4.收集表单数据

通过v-model收集数据,可以通过vue官方的带工具检查是否收集到数据。
这里就不演示怎么收集数据了

data() {
	return {
		ruleForm: {
        	username: "",
       		pass: "",
       },
	}
}

5.发请求

数据我们已经收集好了,现在就是带着数据发请求。
一般这种都是注册按钮点击完发起请求,所以要在注册按钮绑定事件函数。

1.绑定事件函数

<el-button type="primary" @click="submitForm('ruleForm')">注册</el-button>

2.书写事件函数

 methods: {

    submitForm(formName) {
      this.$refs[formName].validate(async (valid) => {
        //都验证通过进行发请求
        if (valid) {
          //  解构收集的表单数据
          const { username, pass } = this.ruleForm
          //后端需要application/x-www-form-urlencoded 格式的表单数据 通过URLSearchParams 解析参数 
          const params = new URLSearchParams();
          //append 插入一个指定的键/值对作为新的搜索参数
          params.append('username', username);
          params.append('password', pass);
          //解析好参数发请求
          let result = await this.$API.reqRegister(params)
          console.log(result);
          if (result.data.status == 0) {
            // 请求成功跳转登录页面并且弹出成功信息
            this.$message({type:'success',message:"注册成功"})
            this.$router.push("./login")
          } else {
            //element ui 弹窗提示
            this.$message.error(result.data.messages)
          }
        } else {
          this.$message.error("按提示输入")
          return false;
        }
      });
    },

特别注意,一开始写这里,后端接收不到我的数据,接口是请求成功的,浏览器也能接收到我传的数据,后端就是接收不到,这块卡了我一天,通过我的一步一步排查,发现后端需要application/x-www-form-urlencoded 格式的表单数据 ,因为这个接口是POST请求,如果是get请求是正常的。这问题原因和解决方案可以参考这里 链接: 原因和方案 不是每个人和我一样的,看你的后端需要什么样的表单数据

我这里采取就是:把参数通过URLSearchParams 解析参数 再来进行发请求

 //  解构收集的表单数据
          const { username, pass } = this.ruleForm
          //后端需要application/x-www-form-urlencoded 格式的表单数据 通过URLSearchParams 解析参数 
          const params = new URLSearchParams();
          //append 插入一个指定的键/值对作为新的搜索参数
          params.append('username', username);
          params.append('password', pass);
          //解析好参数发请求
          let result = await this.$API.reqRegister(params)

这样的大致注册流程就是这样啦!
小伙伴需要有一定的项目基础才能看得懂
看登录功能点这里 链接: 登录功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值