html52.com
我爱小程序-开发者交流社区

小程序的登录逻辑能否放在app.js中实现?

知晓程序员,专注微信小程序开发的程序员!

前言:做小程序开发的同学,可能都会考虑一个问题,用户登录这个方法是公用的,我们应该把这个方法放在哪里最合适呢?


看到上面的问题后,很大一部分刚入门同学都会直接把登录方法放在app.js里,并且有些同学直接把用户登录放在了app的onLaunch或者onShow方法里面,然后打开任何page都会先login了,这种实现方式可取嘛?


我们先来看一下小程序发送请求的官方API:

我们先来看一下小程序发送请求的官方API:这个API,其实是一个异步请求,并不具备同步的功能,也不能实现sleep效果。

这个API,其实是一个异步请求,并不具备同步的功能,也不能实现sleep效果。

异步请求,就有个问题,API数据何时返回,是不确定的。如果把用户登录方法放在了app的onLaunch或onShow里面,然后又在page.js里面用到了登录方法的返回结果(比如用户昵称和头像),那就可能出现偶尔有昵称和头像,偶尔又没有。异步请求只能通过callback的方式来模拟同步的效果。

因此,不建议把登录方法放在app的生命周期函数里面。


再来看一下,连胜老师在小程序中,登录逻辑的实现,如下图:

再来看一下,连胜老师在小程序中,登录逻辑的实现,如下图:之前的文章已经提到过此实现方式,下面我们来讨论一下,用户登录方法写在哪里更合适?

之前的文章已经提到过此实现方式,下面我们来讨论一下,用户登录方法写在哪里更合适?


两种选择方案:

第一:登录方法放在app.js里面,如下

,如下第二:放在utils/util.js里面,这里面也可以把其他公用方法一并写入。


第二:放在utils/util.js里面,这里面也可以把其他公用方法一并写入。

第二:放在utils/util.js里面,这里面也可以把其他公用方法一并写入。以上两种方案都可行,但是,连胜老师更倾向于把公用方法都放入util.js中,app.js中主要获取options参数时用,比如识别小程序码,


以上两种方案都可行,但是,连胜老师更倾向于把公用方法都放入util.js中,app.js中主要获取options参数时用,比如识别小程序码,需要获取scene参数;从群聊中打开小程序卡片,你可以获取shareTickets参数;小程序之间互相跳转,你可以获取到appid等参数。


希望本次分享对刚入门小程序的同学有帮助~


欢迎交流技术问题,群人数已满100,可添加小助手:

欢迎交流技术问题,群人数已满100,可添加小助手:


网友回复

勤:

好文章!

暂时没有什么昵称:

王婆啊你是。。。


CallMeSoul:

我是放在了第一个页面

http://callmesoul.cn/xiao-cheng-xu-kai-fa-zhi-er-lu-you-lan-jie-she-ji/

常睿云:

知晓程序员,确实写了不少好文章,已关注公众号

常睿云:

深夜好文,总结的很好,必须支持

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付