3.5【微信小程序全栈开发课程】登录功能(三)--获取用户信息

简介: 1、获取用户信息我们在实现登录功能时,添加的登录成功时调用的方法loginSuccess。方法中代码wx.setStorageSync('userinfo', res)的作用是将用户信息保存到了缓存中,并将这条缓存信息命名为userinfo。缓存信息会一直存储在用户的手机中,等到下次打开小程序的时候,小程序会读取微信的缓存,来获得用户信息。如果用户清除了微信的缓存,那么需要用户重新登录小程序。现在我们从缓存中将用户信息读取出来

1、获取用户信息


我们在实现登录功能时,添加的登录成功时调用的方法loginSuccess。


方法中代码wx.setStorageSync('userinfo', res)的作用是将用户信息保存到了缓存中,并将这条缓存信息命名为userinfo。


缓存信息会一直存储在用户的手机中,等到下次打开小程序的时候,小程序会读取微信的缓存,来获得用户信息。如果用户清除了微信的缓存,那么需要用户重新登录小程序。


现在我们从缓存中将用户信息读取出来


(1)查看缓存数据


打开微信开发者工具,点击控制台中>>图标,会出现Storage,缓存就是保存在这里,点击Storage后,我们看到一条名为userinfo的信息,里面存储的就是用户信息,每条用户信息都会包括openId、nickName等内容。


image.png

(2)编辑index.vue文件


添加userinfo变量,用来保存用户信息


data () {
  return {
    mark:0,
    userinfo:{},
  }
},


(3)获取用户信息


编辑index.vue文件


每次打开小程序先从缓存中读取是否有名为userinfo的信息,如果有,说明用户登录了,打开小程序会直接显示首页;如果没有,说明用户还未登录,打开小程序显示登录弹窗,提示登录


//onShow是小程序的生命周期,每次切换到当前页面都会触发
onShow () {
  const userinfo = wx.getStorageSync('userinfo')
  //如果缓存中有userinfo的信息,说明用户登录了。
  if(userinfo.openId){
    //将用户信息储存到data的userinfo字段里面,this.userinfo就是指的这个字段。
    this.userinfo = userinfo
   }else{
    wx.hideTabBar()
    this.showLogin = true
   }
},


(4)查看效果


command+c保存代码后,开发者工具会自动刷新效果,如果没有刷新,可以点击编辑自己手动刷新,如果没有看到应该出现的效果,就需要查看终端,看看是不是有报错


image.png


2、登录弹窗显示控制


实现的效果:在点击「授权登录」按钮后,隐藏登录弹窗


(1)编辑index.vue文件


在data函数中添加showLogin变量,用来控制登录弹窗是否显示


//参考代码,无需粘贴
//userinfo:{},
//需要粘贴的部分,设置默认值为false
showLogin:false


(2)编辑index.vue文件


当没有从缓存中读取名为userinfo的信息,说明用户没有登录,那就应该显示登录弹窗,将showLogin改为true


//参考代码,无需粘贴
//}else{
 //wx.hideTabBar()
//需要粘贴的部分
 this.showLogin = true

(3)编辑template部分


用一个标签将登录弹窗部分的页面代码包起来,然后通过vue的语法v-if来控制登录弹窗是否显示


<!-- 需要添加的部分 —>
<!-- v-if是vue的语法,判断语句,当showLogin为true时,显示v-if所在标签包含的部分,也就是登录弹窗页面 -->
<div v-if="showLogin">
  <!-- 参考代码,无需粘贴
  <LoginWindow></LoginWindow>
<!-- 需要添加的部分 -->
</div>


3、子组件向父组件传递信息


上一步完成之后,点击授权登录按钮,登录弹窗还是存在,没有消失,因为在登录成功之后,没有将showLogin改为false,需要在login方法中操作


但是login方法在LoginWindow.vue文件中,这个文件是我们上一节创建的子组件,index.vue文件是他的父组件


我们下面演示子组件向父组件传递信息,即在子组件中告诉父组件,将showLogin变量改为false,从而控制登录弹窗消失


(1)编辑子组件,也就是LoginWindow.vue文件,在this.$emit中添加需要传递的信息

编辑


//参考代码,无需粘贴
//qcloud.login({
//  success: res => {
      //需要添加的部分
      this.$emit('changeShow',false,res)
      //参考代码,无需粘贴
      //wx.showTabBar()


(2)编辑父组件,也就是index.vue文件,读取子组件传递的信息

在template中的HTML组件元素上面,将从子组件中传递过来的信息名称changeShow指向一个方法,并且在该方法中读取信息


1)在标签上面,将信息名称changeShow指向getModel方法,并传递参数arguments,这个参数包含着我们要传递的信息


<LoginWindow @changeShow="getModel(arguments)"></LoginWindow>

2)在script标签中methods对象中添加方法getModel

//参考代码,无需粘贴
//addMark (add) {
  //...
//},
//需要添加的部分
getModel (arguments) {
  console.log("arguments",arguments)
  //将第一个信息false赋值到showLogin变量中,控制登录弹窗消息
  this.showLogin = val[0]
  //将第二个信息赋值到userinfo变量中
  this.userinfo = val[1]
}

4、测试效果


在Storage中删除掉缓存信息,点击编译按钮刷新页面,点击授权登录按钮,就会出现我们下面演示的效果


image.png

目录
相关文章
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
3135 7
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
2803 1
|
9月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
2749 11
技术小白如何利用DeepSeek半小时开发微信小程序?
|
8月前
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
8月前
|
小程序 关系型数据库 Java
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。
|
9月前
|
小程序 JavaScript 前端开发
微信小程序开发全流程:从注册到上线的完整指南
这篇文章详细记录了微信小程序的完整开发到最终上线的每一个步骤。适合对小程序开发感兴趣的个人开发者或希望了解完整流程的学习者,涵盖了云开发、事件绑定、生命周期管理、组件使用等关键内容。
5503 11
|
10月前
|
JSON 缓存 小程序
微信小程序组件封装与复用:提升开发效率
本文深入探讨了微信小程序的组件封装与复用,涵盖组件的意义、创建步骤、属性与事件处理,并通过自定义弹窗组件的案例详细说明。组件封装能提高代码复用性、开发效率和可维护性,确保UI一致性。掌握这些技能有助于构建更高质量的小程序。
|
10月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
3072 12
|
小程序 前端开发 算法
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用

热门文章

最新文章