云开发(微信-小程序)笔记(十三)---- 注册登陆

简介: 云开发(微信-小程序)笔记(十三)---- 注册登陆

云开发(微信-小程序)笔记(十二)---- 搜索

1.简介

注册,登陆是软件的最常见的页面功能,此章与下一节将围绕着注册登陆功能进行优化。

2.注册

2-1.在app.json添加注册页面

"pages": [
    "pages/zhuce/zhuce", //添加的
    "pages/index/index",  //自带的
]

保存,就可以看见pages目录下有zhuce的子目录出现。

2-2.编写zhuce.js文件

自定义要求如下
账号(4~10位)
手机号(11位)
密码(6~25位)

// pages/zhuce/zhuce.js
Page({
  data: {
    name: '',
    phone: '',
    password: ''
  },
  //获取用户账号
  getName(e) {
    this.setData({
      name: e.detail.value
    })
  },
  //回去用户的手机号
  getphone(e){
    this.setData({
      phone: e.detail.value
    })
  },
  //获取用户密码
  getpassword(e) {
    this.setData({
      password: e.detail.value
    })
  },
  //注册功能
  zhuce() {
    //从data中拿取变量
    let password = this.data.password
    let name = this.data.name
    let phone = this.data.phone
    //账号的判断(4~10)
    if (name.length < 4) {
      wx.showToast({
        icon: 'none',
        title: '账号至少4位',
      })
      return
    }
    if (name.length > 10) {
      wx.showToast({
        icon: 'none',
        title: '账号最多10位',
      })
      return
    }
    //判断电话号码(11位)
    if (phone.length < 11){
      wx.showToast({
        icon: 'none',
        title: '电话号码至少11位',
      })
      return
    }
    if (phone.length > 11){
      wx.showToast({
        icon: 'none',
        title: '电话号码最多11位',
      })
      return
    }
    //密码判断(6~25)
    if (password.length < 6) {
      wx.showToast({
        icon: 'none',
        title: '密码至少6位',
      })
      return
    }
    if (password.length > 25) {
      wx.showToast({
        icon: 'none',
        title: '密码最多25位',
      })
      return
    }
    //实现注册
    wx.cloud.database().collection('user').add({
      data: {
        name: name,
        password: password,
        phone: phone
      },
      success(res) {
        console.log('注册成功', res)
        wx.showToast({
          icon: 'success',
          title: '注册成功',
        })
      },
      fail(res) {
        console.log('注册失败', res)
      }
    })
  },
})

2-3.编写zhuce.json文件

{
  "usingComponents": {},
  "navigationBarTitleText": "注册"
}

2-4.编写zhuce.wxml文件(编写看的见的页面)

<!--pages/zhuce/zhuce.wxml-->
输入账号
<input bindinput="getName"></input>
输入手机号
<input bindinput="getphone"></input>
输入密码
<input bindinput="getpassword"></input>
<button bindtap="zhuce" type="default">注册</button>

2-5.编写zhuce.wxss文件(边框等一些样式)

/* pages/zhuce/zhuce.wxss */
input{
  border: 1px solid gray;
  margin: 10rpx;
  border-radius: 10rpx;

2-6.效果图

8944a3956b697809c513d5b27d3ef55.png

3.登陆

3-1.在app.json添加登陆页面

"pages": [
    "pages/longin/longin",  //登陆页面
    "pages/zhuce/zhuce",  //之前添加

3-2.编写longin.js文件

自定义要求

账号要在4~6位

用户输入的密码与数据库的密码进行比对

// pages/longin/longin.js
Page({
  data: {
    name: '',
    password: ''
  },
  //获取用户账号
  getName(e) {
    this.setData({
      name: e.detail.value
    })
  },
  //获取用户密码
  getpassword(e) {
    this.setData({
      password: e.detail.value
    })
  },
  //登陆
  denglu() {
    let name = this.data.name
    let password = this.data.password
    //账号的判断(4~10)
    if (name.length < 4) {
      wx.showToast({
        icon: 'none',
        title: '账号至少4位',
      })
      return
    }
    if (name.length > 10) {
      wx.showToast({
        icon: 'none',
        title: '账号最多10位',
      })
      return
    }
    wx.cloud.database().collection('user').where({
        name: name
      })
      .get({
        success(res) {
          console.log('获取数据成功', res)
          let user = res.data[0]
          if (password == user.password) {
            console.log('登陆成功')
            wx.showToast({
              icon: 'success',
              title: '登陆成功',
            })
            // //登陆成功后实现跳页
            // wx.navigateTo({
            //   url: '/pages/goods/goods?name=' + user.name,
            // })
          } else {
            console.log('登陆失败')
            wx.showToast({
              icon: 'none',
              title: '密码或账号不正确',
            })
          }
        },
        fail(res) {
          console.log('获取数据失败', res)
        }
      })
  }
})

3-3.编写longin.json文件

{
  "usingComponents": {},
  "navigationBarTitleText": "登陆"
}

3-4.编写longin.wxml文件

<!--pages/longin/longin.wxml-->
输入账号
<input bindinput="getName"></input>
输入密码
<input bindinput="getpassword"></input>
<button bindtap="denglu" type="default">登陆</button>

3-5.编写longin.wxss文件

/* pages/longin/longin.wxss */
input{
  border: 1px solid gray;
  margin: 10rpx;
  border-radius: 10rpx;
}

3-6.效果图

4.实现注册完成后,跳转登陆页

主要优化如下

4-1.修改longin.js文件

// pages/longin/longin.js
Page({
  data: {
    name: '',
    password: ''
  },
  //获取用户账号
  getName(e) {
    this.setData({
      name: e.detail.value
    })
  },
  //获取用户密码
  getpassword(e) {
    this.setData({
      password: e.detail.value
    })
  },
  //登陆
  denglu() {
    let name = this.data.name
    let password = this.data.password
    //账号的判断(4~10)
    if (name.length < 4) {
      wx.showToast({
        icon: 'none',
        title: '账号至少4位',
      })
      return
    }
    if (name.length > 10) {
      wx.showToast({
        icon: 'none',
        title: '账号最多10位',
      })
      return
    }
    wx.cloud.database().collection('user').where({
        name: name
      })
      .get({
        success(res) {
          console.log('获取数据成功', res)
          let user = res.data[0]
          if (password == user.password) {
            console.log('登陆成功')
            wx.showToast({
              icon: 'success',
              title: '登陆成功',
            })
            //登陆成功后实现跳转商品详情页
            wx.navigateTo({
               url: '/pages/goods/goods?name=' + user.name,//携带账号进行跳页
             })
          } else {
            console.log('登陆失败')
            wx.showToast({
              icon: 'none',
              title: '密码或账号不正确',
            })
          }
        },
        fail(res) {
          console.log('获取数据失败', res)
        }
      })
  },
  //跳转到注册页,进行注册
  getlongin(){
    wx.navigateTo({
      url: '/pages/zhuce/zhuce', //跳转到注册页
    })
  }
})

这里的商品详情页在云开发(微信-小程序)笔记(八)----云存储,你来了(中)里有

4-2.修改longin.wxml文件

<!--pages/longin/longin.wxml-->
输入账号
<input bindinput="getName"></input>
输入密码
<input bindinput="getpassword"></input>
<button bindtap="denglu" type="default">登陆</button>
<button bindtap="getlongin" type="default">注册</button>

4-3.修改zhuce.js文件

// pages/zhuce/zhuce.js
Page({
  data: {
    name: '',
    phone: '',
    password: ''
  },
  //获取用户账号
  getName(e) {
    this.setData({
      name: e.detail.value
    })
  },
  //回去用户的手机号
  getphone(e){
    this.setData({
      phone: e.detail.value
    })
  },
  //获取用户密码
  getpassword(e) {
    this.setData({
      password: e.detail.value
    })
  },
  //注册功能
  zhuce() {
    //从data中拿取变量
    let password = this.data.password
    let name = this.data.name
    let phone = this.data.phone
    //账号的判断(4~10)
    if (name.length < 4) {
      wx.showToast({
        icon: 'none',
        title: '账号至少4位',
      })
      return
    }
    if (name.length > 10) {
      wx.showToast({
        icon: 'none',
        title: '账号最多10位',
      })
      return
    }
    //判断电话号码(11位)
    if (phone.length < 11){
      wx.showToast({
        icon: 'none',
        title: '电话号码至少11位',
      })
      return
    }
    if (phone.length > 11){
      wx.showToast({
        icon: 'none',
        title: '电话号码最多11位',
      })
      return
    }
    //密码判断(6~25)
    if (password.length < 6) {
      wx.showToast({
        icon: 'none',
        title: '密码至少6位',
      })
      return
    }
    if (password.length > 25) {
      wx.showToast({
        icon: 'none',
        title: '密码最多25位',
      })
      return
    }
    //实现注册
    wx.cloud.database().collection('user').add({
      data: {
        name: name,
        password: password,
        phone: phone
      },
      success(res) {
        console.log('注册成功', res)
        wx.showToast({
          icon: 'success',
          title: '注册成功',
        })
        //注册成功后跳转登陆页
        wx.navigateTo({
          url: '/pages/longin/longin'//跳转登陆页
        })
      },
      fail(res) {
        console.log('注册失败', res)
      }
    })
  },
})

5.登陆后携带数据到商品详情页(goods)

商品详情页在云开发(微信-小程序)笔记(八)----云存储,你来了(中)里有,这里有些修改如下

5-1.优化goods.js部分

// pages/goods/goods.js
Page({
  data:{
     name: ''
  },
  //请求商品信息
  getList(){
    wx.cloud.database().collection('Goods').get()
    .then(res => {
      console.log('请求成功!',res)
      wx.stopPullDownRefresh() //停止刷新动画
      this.setData({
        list: res.data
      })
    })
    .catch(res => {
      console.log('请求失败!',res)
    })
  },
  //请求商品数据
  onLoad(options){
    //携带的数据
    this.setData({
      name: options.name
    })
    wx.startPullDownRefresh()  //开启刷新动画
    this.getList()
  },
  //监听用户下拉动作,并更新商品信息
  onPullDownRefresh: function(){
    console.log('下拉刷新监听中!')
    //自动开启刷新动画
    this.getList()
  },
  //点击后,跳转页面
  go(e){
    console.log(e.currentTarget.dataset.id)
    wx.navigateTo({
      url: '/pages/goods-1/goods-1?id=' + e.currentTarget.dataset.id,
    })
  },
})

5-2.优化goods.wxml部分

<!--pages/goods/goods.wxml-->
<text>{{name}},欢迎你的到来!</text>
<view wx:for="{{list}}">
  <view class="it" bindtap="go" data-id="{{item._id}}">
    <image src="{{item.img}}" class="img"></image>
    <text>商品名:{{item.name}},价格:{{item.price}}</text>
  </view>
</view>

6.效果图(视频)

https://live.csdn.net/v/208539

小程序注册登陆效果图

云开发(微信-小程序)笔记(十四)---- 收藏,点赞(上)

感谢大家,点赞,收藏,关注,评论!

目录
相关文章
ly~
|
7天前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
38 6
|
6天前
|
JSON 小程序 前端开发
创建一个属于自己的小程序(注册开发账号)
介绍如何创建微信小程序账号,包括注册流程、下载安装微信开发者工具、创建项目以及项目结构介绍。
创建一个属于自己的小程序(注册开发账号)
ly~
|
6天前
|
开发框架 小程序 前端开发
抖音小程序的开发难度大吗?
抖音小程序的开发难度因人而异,主要取决于开发者经验、技能及功能需求。技术上需掌握前端技术及抖音开发框架,了解平台生态与规则;设计上需符合用户审美和习惯,具备创新性和实用性。此外,严格的审核标准和激烈的市场竞争增加了开发难度,开发者需制定有效推广策略并持续优化小程序以保持竞争力。
ly~
39 4
|
6天前
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
|
2月前
|
小程序 JavaScript
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
本文介绍了使用 Taro 和 Vue 创建轮播组件的两种方法:一是通过 `&lt;swiper&gt;` 实现,二是利用 Nut UI 的 `&lt;nut-swiper&gt;` 组件实现。
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
|
27天前
|
移动开发 小程序 JavaScript
uni-app开发微信小程序
本文详细介绍如何使用 uni-app 开发微信小程序,涵盖需求分析、架构思路及实施方案。主要功能包括用户登录、商品列表展示、商品详情、购物车及订单管理。技术栈采用 uni-app、uView UI 和 RESTful API。文章通过具体示例代码展示了从初始化项目、配置全局样式到实现各页面组件及 API 接口的全过程,并提供了完整的文件结构和配置文件示例。此外,还介绍了微信授权登录及后端接口模拟方法,确保项目的稳定性和安全性。通过本教程,读者可快速掌握使用 uni-app 开发微信小程序的方法。
57 3
|
6天前
|
小程序 前端开发 API
微信小程序 - 调用微信 API 回调函数内拿不到 this 问题(解决方案)
本文讨论了在微信小程序中调用API回调函数时无法获取到`this`上下文的问题,并提供了解决方案。在回调函数中,使用一个变量(如`that`)来保存当前的`this`引用,然后在回调内部使用这个变量来访问当前页面的数据和方法。
|
2月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,设置转发分享
本文介绍了Taro中`useShareAppMessage`的使用方法,需在页面配置`enableShareAppMessage: true`并重新编译。
Taro@3.x+Vue@3.x+TS开发微信小程序,设置转发分享
|
2月前
|
小程序 数据安全/隐私保护
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
在 `src/http` 目录下创建 `request.ts` 文件,并配置 Taro 的网络请求方法 `Taro.request`,支持多种 HTTP 方法并处理数据加密。
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
|
2月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,上传文件
本文介绍如何在Taro项目中使用Nut UI的`&lt;nut-uploader/&gt;`组件实现图片上传功能,并通过示例代码展示了自定义上传逻辑的方法。
Taro@3.x+Vue@3.x+TS开发微信小程序,上传文件
下一篇
无影云桌面