小程序生命周期(onLaunch、onShow、onHide、onReady、onLoad、onUnload)[通俗易懂]

小程序生命周期(onLaunch、onShow、onHide、onReady、onLoad、onUnload)[通俗易懂]onlaunch:当小程序初始化完成时,会触发onLaunch(全局只触发一次)(app.js);onLoad:页面加载小程序注册完成后,加载页面,触发onLoad方法。一个页面只会调用一次,可以在onLoad中获取打开当前页面所调用的query参数(页面js)。onShow:页面显示页面载入后触发onShow方法,显示页面。每次打开页面都会调用一次(比如当小程序有后台进入到…

大家好,又见面了,我是你们的朋友全栈君。

onlaunch:当小程序初始化完成时,会触发 onLaunch(全局只触发一次)(app.js);
onLoad: 页面加载
小程序注册完成后,加载页面,触发onLoad方法。一个页面只会调用一次,可以在 onLoad 中获取打开当前页面所调用的 query 参数(页面js)。
onShow: 页面显示
页面载入后触发onShow方法,显示页面。每次打开页面都会调用一次(比如当小程序有后台进入到前台运行或重新进入页面时)。
onReady: 首次显示页面,页面初次渲染完成,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。
onHide: 页面隐藏
当navigateTo、底部tab切换、上传文件选择图片时调用。
onUnload: 页面卸载
当返回上一页wx.navigateBack、wx.relanch、wx.redirectTo时都会被调用(这里的坑有点深)。
基本上可以说执行顺序为onLaunch–onLoad–onShow–onReady–onHide.
虽然说onLaunch在onLoad之前执行,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执行了。
解决办法:
在APP里面onLanch中的网络请求中设置判断

 if (this.userInfoReadyCallback) {
    this.userInfoReadyCallback(res)
}

在page的onLoad中设置一个回调

app.userInfoReadyCallback = res => {
	if (res != '') {
		console.log("app.globalData.userInfo")
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151740.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月20日 下午11:00
下一篇 2022年6月20日 下午11:16


相关推荐

  • MySQL配置文件配置

    MySQL配置文件配置MySQL配置文件

    2022年5月5日
    47
  • UVW源码漫谈(一)

    UVW源码漫谈(一)博客园是个非常好的学习知识的地方 相信有很多人跟我一样 园龄 3 年 从博客园不知道拷了多少代码 看了多少博客 自己却一篇博客都没写过 真是罪过 这次准备写几篇关于这个项目源码的阅读和理解的文章 大家一起相互学习学习 我可能不会单单就写源码一类的东西 还会做很多扩展 比如新的 c 的语法 其他的一些工具等等 各位看官不要嫌烦 咱们又不是什么大牛 遇到文中有歧义 不对之处 请在评论

    2025年10月11日
    7
  • linux 安装 RabbitMQ「建议收藏」

    下载ErlangRabbitMQ是由erlang语言编写的,所以在安装rabbitMQ之前需要安装Erlang.erlang下载地址:Downloads-Erlang/OTP这里下载23.3版本。下载rabbitMQ在rabbitMQ官网可以看到mq版本对应的erlang的版本。点击上述地址中的rabbitMQ安装指南,可以在里面下载安装包…

    2022年4月7日
    46
  • Java Double转Bigdecimal丢失精度原因学习

    Java Double转Bigdecimal丢失精度原因学习记录学习Double转Bigdecimal丢失精度的原因注意事项:不能直接使用Bigdecimal的构造函数传double进行转换,部分数值会丢失精度,因为计算机是二进制的Double无法精确的储存一些小数位,0.1的double数据存储的值实际上并不真的等于0.1如该方式将0.1转换为Bigdecimal得到的结果是0.1000000000000000055511151231257827021181583404541015625这是为什么呢,以往只是知道结论知道不能这么用,也大概知道是因为do

    2022年6月4日
    36
  • 门面模式详解

    门面模式详解门面模式门面模式 FacadePatter 又叫外观模式 提供了一个统一的接口 提供了一个统一的接口 用来访问子系统中的一群接口 其主要特征是定义了一个高层接口 让子系统更容易使用 属于结构性模式 其实 在我们日常的编码过程中 我们都在有意无意地大量使用门面模式 但凡只要高层模块需要调度多个子系统 2 个以上类对象 我们都会自觉地创建一个新类封装这些子系统 提供精密接口 让高层模块可以更加容易简介调用这些子系统的功能 尤其是现阶段各种第三方 SDK 各种块原类库 很大概率都会使用门面模式 尤其是你觉得

    2026年3月17日
    2
  • pycharm安装django失败

    pycharm安装django失败pycharm 安装 django 失败 原因是报了一个 ssl 异常 也就是说和国外源站服务器 ssl 失败 所以选用国内源站安装 选中 Options 输入 ihttps pypi tuna tsinghua edu cn simple 然后再点击 InstallPacka 即可安装成功 这里有个小问题 手动执行 pipinstall ixxx 也不能安装 遗留问题

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号