前端注册及优化

前端注册

在做好后端注册功能API之后,前端注册就很好实现了:点击注册,ajax发送post请求,得到结果,成功注册则存储token,跳转页面,注册失败则题型相应的错误信息。

registerHandler(){
  //用户注册
this.$axios.post(`${this.$settings.HOST}/user/reg/`,{
    mobile: this.mobile,
    sms_code: this.sms_code,
    password: this.password
}).then(response=>{
    console.log(response.data)
    localStorage.removeItem("user_token")
    localStorage.removeItem("user_id")
    localStorage.removeItem("user_name")
    sessionStorage.user_token = response.data.token
    sessionStorage.user_id = response.data.id
    sessionStorage.user_name = response.data.username

    // 页面跳转
    let self = this
    this.$alert("注册成功!","路飞学城",{
       callback(){
            self.$router.push("/")
       }
    })
}).catch(error=>{
    let data = error.response.data
    let message = ""
    for(let key in data){
        message = data[key][0];
    }
    this.$message.error(message)
})
}

体验优化

在用户输入手机号码的时候我们是可以进行优化的:当手机号码输入栏失焦(@blur)时,便向服务器请求验证电话号码是否格式正确,是否唯一,并展示给用户。

后端视图

将电话号码通过附加在get请求的url上,并读取

"""
GET /user/mobile/<mobile>/
"""
import re
from rest_framework import status
class MobileAPIView(APIView):
    def get(self,request,mobile):
        ret = get_user_by_account(mobile)
        if ret is not None:
            return Response({"message":"手机号已经被注册过!"},status=status.HTTP_400_BAD_REQUEST)
        return Response({"message":"ok"})

后端路由

是一个正则路由,可以得到电话号码,放在get参数列表中

re_path(r"mobile/(?P<mobile>1[3-9]\d{9})/", views.MobileAPIView.as_view()),

前端方法

失焦则调用这个方法,失焦在vue中用@blur表示

checkMobile(){
    // 检查手机号的合法性[格式和是否已经注册]
    this.$axios.get(`${this.$settings.HOST}/user/mobile/${this.mobile}/`).catch(error=>{
        this.$message.error(error.response.data.message);
    });
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值