读心悦

  • 读心随笔
  • 读心里话
  • 计算机
  1. 首页
  2. 小程序
  3. 正文

多个小程序之间跳,在页面的onShow中取参数的原因

2020年11月09日 107点热度 1人点赞 0条评论

获取参数

假设两个小程序:A和B

从A跳转到B,返回到A之后,获取从小程序B返回的参数:

通过wx.getLaunchOptionsSync()和wx.getEnterOptionsSync()获取返回的参数。这两个方法虽然都是获取小程序启动时的参数【从小程序B返回到小程序A,其实也是启动了小程序A】,然而小程序在启动之后,页面呈现出来时它处在“前台”的状态中,当我们点击上角关闭小程序或者是离开微信时,小程序并没有立即终止运行,而是从“前台”进入“后台”的状态,它还在运行一段时间【小程序没有被销毁,这个运行的时间取决于微信的内存被占用情况而定。当然就算是微信的资源不紧张,并且用户关闭小程序的时间足够久,小程序也会被销毁。】

那么冲小程序A跳转到小程序B再返回A的过程中,小程序A再次启动时可能会有两种方式:

1、冷启动:小程序被销毁之后再次启动;

2、热启动:小程序未被销毁就再次启动。

wx.getLaunchOptionsSync()

该方法获取小程序启动时的参数,和 App.onLaunch回调的参数一致,而onLaunch是在小程序初始化时启动。所以通过该方法来获取从小程序B返回参数,有时候不稳定而导致拿不到相关的参数;

wx.getEnterOptionsSync()

使用该方法来获取小程序启动时的参数,如果小程序时冷启动,那么获取的参数和App.onLaunch回调参数一致;如果小程序时热启动,那么该方法返回的参数和App.onShow回调参数一致。使用该方法获取参数相对来说比较稳定一些。

以上方式都是在app.js中获取参数,此时这些参数是可以全部共享了,在其他需要使用过这些参数时,直接通过getApp()拿到。

另外,小程序A从小程序B只能返回到上一次离开的页面,所以可以直接通过getApp()获取参数时,可以在需要参数的页面中直接使用wx.getEnterOptionsSync()方法拿到对应的参数。那么在页面的生命周期中,到底是在哪个方法中获取参数呢?

小程序的生命周期

小程序页面常见的生命周期:

onLoad、onShow、onReady、onHide、onUnload

onLoad:页面创建的时候触发

onShow:页面显示时触发

onReady:页面首次渲染触发

onHide:页面隐藏,也就是页面从前台切换到后台是触发该事件

onUnload:页面卸载时触发。

很显然,只能在onLoad和onShow方法中获取参数。如果用户在小程序B中停留时间很短,而小程序A还在运行的时候返回小程序A,那就没有触发onLoad。所以不论用户在小程序B中停留多久,当用户回到小程序A时,在onShow方法中获取参数是比较理想的方式!

赞微海报分享
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 小程序
最后更新:2020年11月09日

读心悦

自己从事开发也有一段时间了,总有一些迷茫,对未来有一点恐惧,不知道以后会不会继续从事开发的岗位。无论未来做出怎样的选择,这个网站就记录一下从事开发这段时间的一些笔记、阅读笔记吧,好歹也给自己留个纪念吧,你说呢! 写点代码,读点书,读点心,读点自己!

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

读心悦

自己从事开发也有一段时间了,总有一些迷茫,对未来有一点恐惧,不知道以后会不会继续从事开发的岗位。无论未来做出怎样的选择,这个网站就记录一下从事开发这段时间的一些笔记、阅读笔记吧,好歹也给自己留个纪念吧,你说呢! 写点代码,读点书,读点心,读点自己!

标签聚合
react 随笔 阅读 mysql Nginx 小程序 vue JavaScript hook canvas CSS Echarts 悦读 taro flutter git node redux 闲谈
推荐文章
  1. 微信小程序之间跳转遇到的坑
  2. 微信小程序中自定义导航和地图定位
  3. 小程序全局和局部自定义导航栏样式
  4. 微信小程序前端解密获取用户信息
分类
  • flutter (11)
  • html/css (23)
  • Javascript (22)
  • Mysql (2)
  • node (2)
  • React (27)
  • vue (1)
  • 小程序 (41)
  • 悦读 (8)
  • 未分类 (2)
  • 读心里话 (9)

COPYRIGHT © 2020 读心悦

黔ICP备20005501号

黔公网安备52011502001078号