
周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。下面从一下三个方面介绍微信 小程序 的生命周期:
应用生命周期
页面生命周期
应用生命周期影响页面生命周期
应用生命周期
1、用户首次打开小程序,触发 onLaunch(全局只触发一次)。
2、小程序初始化完成后,触发onShow方法,监听小程序显示。
3、小程序从前台进入后台,触发 onHide方法。
4、小程序从后台进入前台显示,触发 onShow方法。
5、小程序后台运行一定时间,或系统资源占用过高,会被销毁。
前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。
页面生命周期
1、小程序注册完成后,加载页面,触发onLoad方法,一个页面只会调用一次。
2、页面载入后触发onShow方法,显示页面,每次打开页面都会调用一次。
3、首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
4、当小程序后台运行或跳转到其他页面时,触发onHide方法。
5、当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
6、当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload
wx.navigateTo跳转状态下,页面A和页面B的生命周期逻辑
1、进入A页面:A执行onLoad()-->onShow()-->onReady();
2、A页面navigateTo B页面:A执行onHide(),B执行onLoad()-->onShow()-->onReady();
3、B页面返回A页面:B执行onUnload(),A执行onShow();
4、退出A页面:A执行onUnload()。
应用生命周期影响页面生命周期
1、小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。
2、当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。
3、当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。
现在的小程序获取options值的话,最简单的方式,就是使用 onLoad(生命周期函数--监听页面加载) 来获取了
但是有的时候 需要使用 onShow(生命周期函数--监听页面显示) 来获取 options ,这个时候就获取不到options 值
打印options 会显示 undefined
如何在onshow中获取 options值
首先获取小程序的页面栈
什么是小程序的页面栈,了解一下
举例 :如果一个网页,你一直点击链接 ,就会一直跳转,(前提没有打开新的页面),你每打开一个页面,就会向页面栈中引入一个当前页面,就形成了一个栈结构,可以从当前的页面,一直返回到第一个页面.
同理,小程序也是存在栈结构的,小程序的栈解构,是有限制,最大长度只有10,只保存10个,如果超出10个,就会把第一个页面,释放掉
1. getCurrentPages( ) 获取页面栈
注意
一定要从传递参数的页面跳转过来, 注意
我个人的 :传递参数页面是pages/user/user/ ,点击跳转的是pages/order/order,
打印结果
打印出来是一个数组, 其中有标记着自己现在哪一个页面的路径"_route_",找到当前的页面路径 options就在其中
注意:我个人传递的参数 是tyoe = 1 传递参数页面是pages/user/user/ ,跳转的是pages/order/order, 所以options是在pages/order/order中的,也就是数组的下标为1的
2. 获取 options 中的参数
这样就获取到传递的参数了
希望帮助到各位小白了
onshow 和 onload的区别为:指代不同、用法不同、侧重点不同
一、指代不同
1、onshow:上演。
2、onload:页面加载。
二、用法不同
1、onshow:show的基本意思是“给…看”,可指有意或无意地将某物置于他人视野内,也可指将他人带到能看到该物的地方。show也可作“上演、展出”“为…带路”,“带…到某处”解,引申还可表示“表现出”“显露出”“流露出”,“说明”“表明”,“呈现”等。
2、onload:load作名词时基本意思是“负荷,负担”,可指人、畜、车辆、船只或飞机所负荷的东西,也可指人精神上的负担。load作“装载,装载量”解时,指的是交通工具的所能运载量的大小。
三、侧重点不同
1、onshow:每次打开页面都会调用一次。
2、onload:一个页面只会调用一次。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)