微信小程序实现登录界面

 更新时间:2021年04月23日 09:43:01   作者:Harris-H  
这篇文章主要为大家详细介绍了微信小程序实现登录界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

微信小程序的登录界面实现,供大家参考,具体内容如下

<view class="container">
  <view class="wrapper">
    <view class="left-top-sign">LOGIN</view>
    <view class="welcome">
      欢迎回来!
    </view>
    <view class="input-content">
      <view class="input-item">
        <text class="tit">手机号码</text>
        <input type="text" placeholder="请输入手机号码" id='phone' data-type='phone' bindinput='handerInput' />
      </view>
      <view class="input-item">
        <text class="tit">密码</text>
        <input type="password" placeholder="请输入密码" id='password' data-type='password' bindinput='handerInput' />
      </view>
    </view>
    <button class="confirm-btn">登录</button>
    <view class="forget-section">
      忘记密码?
    </view>
  </view>
  <view class="register-section">
    还没有账号?
    <text>马上注册</text>
  </view>
</view>

最基本的表单提交。

data: {
    phone: '', //手机号
    password: ''  //密码
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },
  handerInput(event) {
    //let type = event.currentTarget.dataset.type;
    let type = event.currentTarget.id;
    console.log(event);
    this.setData({
      [type]: event.detail.value
   })
  },
  /**

双向绑定的实现,利用bindinput 事件,可用id或者dataset 唯一确定数据。

id可传入一个数据,dataset可传入多个数据。

微信小程序的交互:消息显示框。(官方链接)

对于登录按钮绑定一个点击回调函数。

//html
<button class="confirm-btn" bindtap="login">登录</button>

//js
login() {
    let { phone, password } = this.data;
    console.log(password);
    /**
     * 手机号验证
     * 手机号为空
     * 手机号式错误
     * 手机号正确
     */
    if (!phone) {
      wx.showToast({
        title: '手机号不能为空',
        icon: 'none'
      })
      return;
    }
    //定义手机号的正则表达式
    let phoneReg = /^1(3|4|5|6|7|8|9)\d{9}$/
    if (!phoneReg.test(phone)) {
      wx.showToast({
        title: '手机号格式错误',
        icon: 'none'
      })
      return;
    }

    if (!password) {
      wx.showToast({
        title: '密码不能为空',
        icon: 'none'
      })
      return;
    }

    wx.showToast({
      title: '前端验证通过'

    })

后端验证,调用接口,通过响应的状态码来返回给用户登录的信息。

let result = await request('/login/cellphone', { phone, password });
    if (result.code === 200) {
      wx.showToast({
        title: '登陆成功',
      })
    }
    else if (result.code === 400) {
      wx.showToast({
        title: '手机号错误',
        icon: 'none'
      })
    }
    else if (result.code === 502) {
      wx.showToast({
        title: '密码错误',
        icon: 'none'
      })
    }
    else {
      wx.showToast({
        title: '登录失败,请重新登录',
        icon: 'none'
      })
    }
},

个人中心点击头像,跳转登录界面,登录成功后将用户个人信息数据缓存(使用setStorageSync,和getStorageSync 方法),然后使用switchTab 跳转到tabbar下的个人中心页,然后将获得的缓存数据储存到js的data中,注意json格式的转化,最后在

html里三元运算特判一下。

<view class="user-info-box" bindtap='toLogin'>
      <view class="portrait-box">
        <image class="portrait"
          src='{{userInfo.avatarUrl?userInfo.avatarUrl:"/static/images/personal/missing-face.png"}}'></image>
      </view>
      <view class="info-box">
        <text class="username">{{userInfo.nickname?userInfo.nickname: '游客'}}</text>
      </view>
</view>
//login.js
if (result.code === 200) {
      wx.showToast({
        title: '登陆成功',
      })

      wx.setStorageSync('userInfo', JSON.stringify(result.profile));

      wx.switchTab({
        url: '/pages/personal/personal'
      })
    }
// personal.js
onLoad: function (options) {

    let userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        userInfo: JSON.parse(userInfo)
      })
    }

  },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Javascript 函数的四种调用模式

    Javascript 函数的四种调用模式

    这篇文章主要介绍了Javascript 函数的四种调用模式的相关资料,需要的朋友可以参考下
    2016-11-11
  • js/html光标定位的实现代码

    js/html光标定位的实现代码

    光标定位,想必大家有所了解吧,在本文将为大家介绍的是通过自定义函数来实现标签元素的定位,感兴趣的朋友可以了解下
    2013-09-09
  • JS中Promise的使用及封装方式

    JS中Promise的使用及封装方式

    这篇文章主要介绍了JS中Promise的使用及封装方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • js取模(求余数)隔行变色

    js取模(求余数)隔行变色

    今天需要用js实现做隔行变色功能,原来用的是asp程序都是用mod取模,原来js中用的是%,具体如下需要的朋友可以参考下
    2014-05-05
  • 跨域解决之JSONP和CORS的详细介绍

    跨域解决之JSONP和CORS的详细介绍

    跨域常见的两种方式,分别是jsonp和cors,这篇文章主要介绍了跨域解决之JSONP和CORS的详细介绍,非常具有实用价值,需要的朋友可以参考下
    2018-11-11
  • 分享JS四种好玩的黑客背景效果代码

    分享JS四种好玩的黑客背景效果代码

    大家好,本篇文章分享的是四种好玩的黑客背景效果JS代码,感兴趣的同学赶紧来试试吧,觉得还不错的话记得收藏一下哦,方便下次浏览
    2021-11-11
  • JS库之wow.js使用方法

    JS库之wow.js使用方法

    近日,在做项目中,需要做到滚动条滑到某个位置时,才能显示动画,网上查询到有个wow.js可以达到要求,现在把使用方法做如下总结,需要的朋友参考下吧
    2017-09-09
  • JS首屏加载时间优化的解决方法总结

    JS首屏加载时间优化的解决方法总结

    首屏加载时间是一个衡量网页性能和用户体验的关键指标,这个问题无论是在面试中还是在项目开发中都占有极其高的权重,本文为大家整理了几种JS中优化首屏加载时间的方法,希望对大家有所帮助
    2024-02-02
  • js中indexOf()的简单使用示例

    js中indexOf()的简单使用示例

    indexOf在js中有着重要的作用,可以判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,下面这篇文章主要给大家介绍了关于js中indexOf()简单使用的相关资料,需要的朋友可以参考下
    2023-01-01
  • 中文字符串截取的js函数代码

    中文字符串截取的js函数代码

    有时在显示某段文字的时候,可能会太长,影响我们页面的显示效果。如果仅是英文,那么我们可以用String.substring(start, end)函数就已经够用了。但是通常我们都会遇到既有英文,又有汉字的情况。而汉字是占用2个字节的,如果用String.substring(start, end)截取字符串的话,会发现汉字截取后比英文截取后个数虽然相同,但是长度还是长出去不少(具体要视字符个数来决定)
    2013-04-04

最新评论