家政服务小程序实战开发教程018-用户注册

news2024/11/16 13:35:56

我们在教程的一开始的时候就讲解了用户注册的功能。当初的规划是一进来就让用户自主的选择角色,然后提交用户信息,如果未注册就跳转到注册界面。

随着教程的深入,又参考了很多线上的小程序,发现这种模式也有一定的缺点。因为作为首次登录的用户,他还不了解你的程序的具体的功能,就强制用户注册的话未免有点不人性化。

为了提高小程序的体验,我们修改一下业务逻辑,不让用户一打开的时候就注册信息,我们还是放在我的页面实现用户的注册。因此需要修改一下原来的功能

1 数据源的优化

在上一篇的时候,我们设计的数据源已经考虑了用户的昵称和头像的获取。原来的数据源已经设计了一些字段,我们在原来的基础上扩充几个字段

在这里插入图片描述

2 更新页面

数据源增加字段后,我们的注册页面也要对应的调整,选中表单容器,点击数据源的刷新按钮
在这里插入图片描述
勾选我们新加入的字段
在这里插入图片描述
在这里插入图片描述
新加入的字段会根据字段的类型自动的生成组件。组件更新好之后有个问题,用户的微信昵称和头像都已经存在了,难道还需要再上传一次吗?官方组件已经考虑到了这个问题,高级属性已经增加了对应的配置。

先选中昵称,在右侧的属性面板我们找到小程序开放能力,打开配置
在这里插入图片描述
选中头像,同样的也打开小程序开放能力
在这里插入图片描述
打开这两项配置,如果发布成小程序,你在录入信息的时候,就会弹出微信的昵称和头像,可以直接选择。

3 修改小程序启动时候的逻辑

我们原来的逻辑是小程序一启动的时候就去判断用户是否注册,如果注册了我们将信息取出存入全局变量中,如果未注册就跳转到注册界面。现在我们的逻辑是只需要获取用户信息即可,无需跳转页面

export default {
  async onAppLaunch(launchOpts) {
    //console.log('---------> LifeCycle onAppLaunch', launchOpts)
    //$app.auth.currentUser.openId = "o29js5TnCwiYJayG9AieKzkIlOBg"
    const userInfo  = await $app.auth.getUserInfo();

    console.log(userInfo)

    const result = await app.cloud.callModel({
      name:'yhxx_5wybupo',
      methodName:'wedaGetRecords',
      params:{
        pageNo:1,
        pageSize:1,
        where:[
          {
            key:"openid",
            rel:"eq",
            val:userInfo.openId
          }
        ]
      }
    })
    console.log(userInfo.openId)
    console.log(result)
    if(result.total>0){
      $app.dataset.state.user = result.records[0]
      /*app.navigateTo({
        pageId:"index",
        params:{}
      })*/
    }
  },
  onAppShow(appShowOpts) {
    //console.log('---------> LifeCycle onAppShow', appShowOpts)
  },
  onAppHide() {
    //console.log('---------> LifeCycle onAppHide')
  },
  onAppError(options) {
    //console.log('---------> LifeCycle onAppError', options)
  },
  onAppPageNotFound(options) {
    //console.log('---------> LifeCycle onAppPageNotFound', options)
  },
  onAppUnhandledRejection(options) {
    //console.log('---------> LifeCycle onAppUnhandledRejection', options)
  }
}

在这里插入图片描述

4 注册后更新用户信息

还有一个问题是,在我的页面,未注册我们要显示注册按钮,注册之后就需要返回我的页面,而且要显示用户的头像和昵称。这就涉及到提交之后需要更新变量的问题

首先思考的是,用户提交之后会发生什么?用户点击提交按钮后,表单容器已经设置了默认的提交事件
在这里插入图片描述
在微搭中,一般事件都是链式调用的,比如先调用了数据源的创建单条记录方法,成功后就返回上一页。

那我们的思路是先把存入数据源的出参保存到一个全局变量,然后返回上一页再根据这个变量把数据查询出来绑定到页面上

我们先定义一个全局变量来保存提交方法返回的参数

在这里插入图片描述
然后将定义好的变量绑定到出参
在这里插入图片描述
然后在我的页面的生命周期函数中再次将数据查询出来并且赋值给全局变量

export default {
  async onPageLoad(query) {
    console.log('---------> LifeCycle onPageLoad', query)
    if (app.dataset.state.userid != "") {
      const user = await app.cloud.callModel({
        name: 'yhxx_5wybupo',
        methodName: 'wedaGetItem',
        params: {
          _id: app.dataset.state.userid
        }
      })

      if (user._id != '') {
        app.dataset.state.user = user
      }
      console.log("user", app.dataset.state.user)
    }
  },
  onPageShow() {
    console.log('---------> LifeCycle onPageShow')
  },
  onPageReady() {
    console.log('---------> LifeCycle onPageReady')
  },
  onPageHide() {
    console.log('---------> LifeCycle onPageHide')
  },
  onPageUnload() {
    console.log('---------> LifeCycle onPageUnload')
  },
}

在这里插入图片描述

总结

我们本篇继续完善了用户注册功能,主要是更新用户表的字段,注册功能后再次将用户信息加载出来,感兴趣的照着教程实验一下吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络虚拟化2

Linux网络虚拟化2 今天我们接着上节课介绍的 Linux 网络知识,继续来学习它们在虚拟化网络方面的应用,从而为后续学习容器编排系统、理解各个容器是如何通过虚拟化网络来协同工作打好基础。 这一篇内容较多,可以重点看标红部分和标粗部分​。…

Ubuntu环境下minicom使用

1、minicom的安装 sudo apt-get install minicom2、minicom的配置 sudo minicom -s # 打开minicom配置界面3、配置serial port setup串口信息 使用上下箭头选择,enter进入。 按A修改Serial Device,修改之前可以用命令ls -la /dev/ttyUSB或者ls -la …

java 一文讲透集合框架(10万字博文)

目录 一、前言 二、集合简介 1.定义 : 2.集合与数组的区别 : 3.集合的好处 : 三、集合框架 1.单列集合 2.双列集合 Δ体系图(重要) 四、List集合详解(三万余字) 五、Set集合详解(三万余字) 六、增…

学习实践-Whisper语音识别模型实战(部署+运行)

1、Whisper内容简单介绍 OpenAI的语音识别模型Whisper,Whisper 是一个自动语音识别(ASR,Automatic Speech Recognition)系统,OpenAI 通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务…

论文笔记|CVPR2023:Semantic Prompt for Few-Shot Image Recognition

论文地址:https://arxiv.org/pdf/2303.14123.pdf 这是一篇2023年发表在CVPR上的论文,论文题目是Semantic Prompt for Few-Shot Image Recognitio,即用于小样本图像识别的语义提示。 1 Motivation 第一,最近几项研究利用 语义信…

< Linux >:进程地址空间

目录 一、验证进程地址空间 二、感知进程地址空间的存在 一、验证进程地址空间 我们之前学的 C/C 程序地址空间是物理内存吗? 答:不是物理内存,甚至叫做程序地址空间都不太准确,应该叫做进程地址空间,因此根本就不是…

Notion插件,让你的页面有无限可能

// 你是否觉得notion的极简风格略为单调?是否想用notion实现更多的功能?是否想让notion更为便捷,更为多样化?那今天推荐的几款notion插件绝对不能错过,因为他们也确实不错。 // - ———byFutureForce DAO——— - 你…

把ChatGPT接入我的个人网站

效果图 详细内容和使用说明可以查看我的个人网站文章 把ChatGPT接入我的个人网站 献给有外网服务器的小伙伴 如果你本人已经有一台外网的服务器,并且页拥有一个OpenAI API Key,那么下面就可以参照我的教程来搭建一个自己的ChatGPT。 需要的环境 Cento…

让我们一起解密组播、IGMP、IGMP监听

前言:一直对组播这个概念迷迷糊糊,特别是交换机处理组播的方式,非常想搞懂但是懒癌发作。这几天终于耐心地看了下有关组播的资料,大致了解了一下同一广播域内组播的相关知识。组播占了计算机网络的一大部分,特别是组播…

ChatGPT 被大面积封号,到底发生什么了?

意大利数据保护机表示 OpenAI 公司不但非法收集大量意大利用户个人数据,没有设立检查 ChatGPT 用户年龄的机制。 ChatGPT 似乎正在遭遇一场滑铁卢。 3月31日, 大量用户在社交平台吐槽,自己花钱开通的 ChatGPT 账户已经无法登录,更…

举一反三学python(9)—excel基础

一、导论: 操作 excel 表格的Python 第三方库有openpyxl、xlrd、xlwt等,它们的功能都相同,就是语法有差异,今天我就带领大家学习用openpyxl模块操作实用的excel文件。 openpyxl模块为第三方库,首先要安装:p…

electron+vue3全家桶+vite项目搭建【九】集成vite-plugin-mock-server 模拟后端请求

文章目录引入1.引入依赖2.集成插件3.测试接口请求引入 后端接口出的太慢?问题不大,咱们可以借助vite-plugin-mock-server插件自己写接口,返回商量好的格式,后续联调直接切换环境即可 vite-plugin-mock-server官网 mock.js官网 …

uniapp人脸识别解决方案

APP端: 因为APP端无法使用uni的camera组件,最开始考虑使用内嵌webview的方式,通过原生dom调用video渲染画面然后通过canvas截图。但是此方案兼容性在ios几乎为0,如果app只考虑安卓端的话可以采用此方案。后面又想用live-pusher组件…

【Linux】vi编辑器——插入模式

目录 插入模式 光标移动命令 a A i I o O命令 a----------------在光标后附加文本 A----------------在文本行末附加文本 i------------------在光标前插入文本 I-------------------在文本开始插入文本 o----------------在光标下插入新行 O---------------在…

陶泓达:4.11黄金原油白银最新走势分析及操作策略!

黄金行情走势分析:   周一(4月10日),国际金价一度跌约1%,重回2000美元干口下方。此前公布的美国3月非农就业数据显示劳动力市场吃紧,并提高了美联储5月再次加息的预期。金属公司MKS PAMP在一份报告中表示:“金价自20…

Doris(5):数据导入(Load)之Broker load

为适配不同的数据导入需求,Doris系统提供了五种不同的数据导入方式,每种数据导入方式支持不同的数据源,存在不同的方式(异步,同步) Broker load 通过Broker进程访问并读取外部数据源(HDFS&#…

elasticsearch之DSL查询文档

目录 DSL查询分类 全文检索查询 match查询: multi_match: 精准查询 地理坐标查询 矩形范围查询 中心点范围 组合查询 elasticsearch中的相关性打分算法是什么? 案例——给“如家”这个品牌的酒店排名靠前一些 function score query…

ChatGPT写新闻-ChatGPT写文章

ChatGPT写新闻 ChatGPT可以用于生成新闻稿件,但需要注意的是,由ChatGPT生成的新闻稿件可能存在语义、逻辑、事实准确性等方面的问题,因此需要进行人工审核和编辑,确保其准确性。 下面是一个示例过程,大致了解如何使用…

GPT3.5 , InstructGPT和ChatGPT的关系

GPT-3.5 GPT-3.5 系列是一系列模型,从 2021 年第四季度开始就使用文本和代一起进行训练。以下模型属于 GPT-3.5 系列: code-davinci-002 是一个基础模型,非常适合纯代码完成任务text-davinci-002 是一个基于 code-davinci-002 的 InstructG…

PixiJS 文字模糊处理策略

pixijs介绍 PixiJS是一个用于创建交互式2D图形和动画的JavaScript库。它是一个快速、轻量级、易于使用的库,可以在WebGL和Canvas上运行。支持WebGL和Canvas两种渲染方式。WebGL是一种基于OpenGL的3D图形API,可以在GPU上进行高效的图形渲染。Canvas是一种…