微信小步伐实现登录注册

打印 上一主题 下一主题

主题 1867|帖子 1867|积分 5601

1. 官方文档教程


  • https://developers.weixin.qq.com/miniprogram/dev/framework/
  • 路由跳转的几种方式: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html
  • Toast弹框提示:https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showToast.html
  • 数据缓存:https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html
2. 注册实现


  • 编写register.wxml布局页面
  1. <!--pages/register/register.wxml-->
  2. <navigation-bar title="" back="{{true}}" color="white" background="#ffb241"/>
  3. <view class="login-container">
  4. <view class="logo-container">
  5.         <image class="logo" src="../../assets/img_login_bg.png" mode="" />
  6. </view>
  7. <view class="login-parent-container">
  8.         <text class="login-title-tips">注册</text>
  9.         <view class="login-username-container">
  10.                 <image src="../../assets/img_username.png" mode="" />
  11.                 <input placeholder="请输入用户名" bindinput="eventUsernameHandle" />
  12.         </view>
  13.         <view class="login-password-container">
  14.                 <image src="../../assets/img_password.png" mode="" />
  15.                 <input placeholder="请输入密码" password="true" bindinput="eventPasswordHandle" />
  16.         </view>
  17.         <view class="login-btn-container"> <button bind:tap="onRegisterHandle">注册</button></view>
  18. </view>
  19. </view>
复制代码
  navigation-bar是微信创建项目只带的顶部导航栏,直接拿过来使用即可
  留意事项: 自界说组件需要注册之后才能使用, 以是需要在register.json文件中,注册自界说组件
  1. {
  2.   "usingComponents": {
  3.     "navigation-bar": "/components/navigation-bar/navigation-bar"
  4.   }
  5. }
复制代码

  • register.js 实现注册
在这里使用wx.setStorageSync来生存用户名和密码
  1. // pages/register/register.js
  2. Page({
  3.   /**
  4.    * 页面的初始数据
  5.    */
  6.   data: {
  7.     username: "",
  8.     password: ""
  9.   },
  10.   /**
  11.    * 生命周期函数--监听页面加载
  12.    */
  13.   onLoad(options) {
  14.   },
  15.   eventUsernameHandle(options) {
  16.     this.setData({
  17.       username: options.detail.value
  18.     })
  19.   },
  20.   eventPasswordHandle(options) {
  21.     this.setData({
  22.       password: options.detail.value
  23.     })
  24.   },
  25.   /**
  26.    * 注册
  27.    */
  28.   onRegisterHandle() {
  29.     if (this.data.username.trim() === '') {
  30.       wx.showToast({
  31.         title: '请输入用户名',
  32.         icon: "error"
  33.       })
  34.       return
  35.     }
  36.     if (this.data.password.trim() === '') {
  37.       wx.showToast({
  38.         title: '请输入密码',
  39.         icon: "error"
  40.       })
  41.       return
  42.     }
  43.     //保存用户名和密码
  44.     wx.setStorageSync('username', this.data.username)
  45.     wx.setStorageSync('password', this.data.password)
  46.     wx.showToast({
  47.       title: '注册成功',
  48.       icon: 'success',
  49.       success: () => {
  50.           setTimeout(() => {
  51.             wx.navigateBack()
  52.           }, 1000);
  53.       }
  54.     })
  55.   },
  56.   /**
  57.    * 生命周期函数--监听页面初次渲染完成
  58.    */
  59.   onReady() {
  60.   },
  61.   /**
  62.    * 生命周期函数--监听页面显示
  63.    */
  64.   onShow() {
  65.   },
  66.   /**
  67.    * 生命周期函数--监听页面隐藏
  68.    */
  69.   onHide() {
  70.   },
  71.   /**
  72.    * 生命周期函数--监听页面卸载
  73.    */
  74.   onUnload() {
  75.   },
  76.   /**
  77.    * 页面相关事件处理函数--监听用户下拉动作
  78.    */
  79.   onPullDownRefresh() {
  80.   },
  81.   /**
  82.    * 页面上拉触底事件的处理函数
  83.    */
  84.   onReachBottom() {
  85.   },
  86.   /**
  87.    * 用户点击右上角分享
  88.    */
  89.   onShareAppMessage() {
  90.   }
  91. })
复制代码

  • 实现效果

3. 登录实现


  • 编写login.wxml
  1. <!--pages/login/login.wxml-->
  2. <navigation-bar title="" back="{{false}}" color="#ffffff" background="#ffb241" />
  3. <view class="login-container">
  4.         <view class="logo-container">
  5.                 <image class="logo" src="../../assets/img_login_bg.png" mode="" />
  6.         </view>
  7.         <view class="login-parent-container">
  8.                 <text class="login-title-tips">登录</text>
  9.                 <view class="login-username-container">
  10.                         <image src="../../assets/img_username.png" mode="" />
  11.                         <input placeholder="请输入用户名"  bindinput="eventUsernameHandle" value="{{username}}" />
  12.                 </view>
  13.                 <view class="login-password-container">
  14.                         <image src="../../assets/img_password.png" mode="" />
  15.                         <input placeholder="请输入密码" password="true" bindinput="eventPasswordHandle" value="{{password}}" />
  16.                 </view>
  17.                 <view class="forget-pwd-container">
  18.                          <view class="forget-pwd-left-container">
  19.                                 <switch  type="checkbox"  checked="{{checked}}"  bindchange="checkboxChange" />
  20.                                 <text>记住密码</text>
  21.                          </view>
  22.                         <view class="forget-pwd-right-container" bind:tap="onRegisterHandle">
  23.                    <text class="tips">还没有账号?</text>
  24.                          <text class="register-text">注册</text>
  25.                 </view>
  26.                 </view>
  27.                 <view class="login-btn-container"> <button bind:tap="onLoginHandle">登录</button></view>
  28.         </view>
  29. </view>
复制代码

  • login.js 实现登录
  1. // pages/login/login.js
  2. Page({
  3.   /**
  4.    * 页面的初始数据
  5.    */
  6.   data: {
  7.     username: "",
  8.     password: "",
  9.     checked: false
  10.   },
  11.   /**
  12.    * 生命周期函数--监听页面加载
  13.    */
  14.   onLoad(options) {
  15.     if (wx.getStorageSync("checked")) {
  16.       this.setData({
  17.         username: wx.getStorageSync("username"),
  18.         password: wx.getStorageSync("password"),
  19.       })
  20.       this.setData({checked:wx.getStorageSync('checked')})
  21.     }
  22.   },
  23.   /**
  24.    * 点击记住密码
  25.    */
  26.   checkboxChange(event) {
  27.     this.setData({
  28.       checked: event.detail.value
  29.     })
  30.     wx.setStorageSync('checked', this.data.checked)
  31.   },
  32.   eventUsernameHandle(options) {
  33.     this.setData({
  34.       username: options.detail.value
  35.     })
  36.   },
  37.   eventPasswordHandle(options) {
  38.     this.setData({
  39.       password: options.detail.value
  40.     })
  41.   },
  42.   /**
  43.    * 注册
  44.    */
  45.   onLoginHandle() {
  46.     if (this.data.username.trim() === '') {
  47.       wx.showToast({
  48.         title: '请输入用户名',
  49.         icon: "error"
  50.       })
  51.       return
  52.     }
  53.     if (this.data.password.trim() === '') {
  54.       wx.showToast({
  55.         title: '请输入密码',
  56.         icon: "error"
  57.       })
  58.       return
  59.     }
  60.     if (this.data.username === wx.getStorageSync("username") && this.data.password === wx.getStorageSync("password")) {
  61.       wx.showToast({
  62.         title: '登录成功',
  63.         icon: 'success',
  64.         success: () => {
  65.           setTimeout(() => {
  66.             wx.navigateBack()
  67.           }, 1000);
  68.         }
  69.       })
  70.     } else {
  71.       wx.showToast({
  72.         title: '用户名或密码错误',
  73.         icon: 'error',
  74.       })
  75.     }
  76.   },
  77.   /**
  78.    * 注册
  79.    */
  80.   onRegisterHandle() {
  81.     wx.navigateTo({
  82.       url: '/pages/register/register',
  83.     })
  84.   },
  85.   /**
  86.    * 生命周期函数--监听页面初次渲染完成
  87.    */
  88.   onReady() {
  89.   },
  90.   /**
  91.    * 生命周期函数--监听页面显示
  92.    */
  93.   onShow() {
  94.   },
  95.   /**
  96.    * 生命周期函数--监听页面隐藏
  97.    */
  98.   onHide() {
  99.   },
  100.   /**
  101.    * 生命周期函数--监听页面卸载
  102.    */
  103.   onUnload() {
  104.   },
  105.   /**
  106.    * 页面相关事件处理函数--监听用户下拉动作
  107.    */
  108.   onPullDownRefresh() {
  109.   },
  110.   /**
  111.    * 页面上拉触底事件的处理函数
  112.    */
  113.   onReachBottom() {
  114.   },
  115.   /**
  116.    * 用户点击右上角分享
  117.    */
  118.   onShareAppMessage() {
  119.   }
  120. })
复制代码

  • 运行效果

4. 关于作者其它项目视频教程先容

本人在b站录制的一些视频教程项目,免费供大家学习

  • Android新闻资讯app实战:https://www.bilibili.com/video/BV1CA1vYoEad/?vd_source=984bb03f768809c7d33f20179343d8c8
  • Androidstudio开发购物商城实战:https://www.bilibili.com/video/BV1PjHfeXE8U/?vd_source=984bb03f768809c7d33f20179343d8c8
  • Android开发备忘录记事本实战:https://www.bilibili.com/video/BV1FJ4m1u76G?vd_source=984bb03f768809c7d33f20179343d8c8&spm_id_from=333.788.videopod.sections
  • Androidstudio底部导航栏实现:https://www.bilibili.com/video/BV1XB4y1d7et/?spm_id_from=333.337.search-card.all.click&vd_source=984bb03f768809c7d33f20179343d8c8
  • Android使用TabLayout+ViewPager2实现左右滑动切换:https://www.bilibili.com/video/BV1Mz4y1c7eX/?spm_id_from=333.337.search-card.all.click&vd_source=984bb03f768809c7d33f20179343d8c8

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表