微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)相关的知识,希望对你有一定的参考价值。

参考技术A

周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。下面从一下三个方面介绍微信 小程序 的生命周期:

应用生命周期

页面生命周期

应用生命周期影响页面生命周期

应用生命周期

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方法。

微信小程序的生命周期和路由

小程序的生命周期

1.整体小程序的生命周期:

1 App({
2 
3   onLaunch() {},   监听小程序初始化,只触发一次
4   onShow(){},小程序启动或切换到前台运行
5   onHide(),小程序切换到后台运行
6   
7 })

2.小程序页面中的生命周期

 1 Page({
 2   //页面创建完,只触发一次,通常获取后台数据或接收另一个页面的传参时使用
 3     onLoad() {
 4         //一般获取数据是在这个生命周期中进行的
 5         },
 6     //进入页面就会触发
 7     onShow() {},
 8     //页面离开时触发
 9     onHide() {},
10     //监听页面初次渲染完成
11     onReady() {},
12     //监听页面卸载,类似于vue中destroyed
13     onUnload() {}
14     onReachBottom() {
15     console.log(‘到底页面底部‘)
16   },
17   //下拉触发
18   onPullDownRefresh() {
19     console.log(‘onPullDownRefresh‘)
20   },
21   //点击右上角分享时触发
22   onShareAppMessage() {
23     
24   }
25 })    

3.微信小程序的路由

 1 两种路由触发模式:
 2 
 3 1.标签方式触发
 4    
 5   小程序:<navigator url="要中转的路径?key=value">
 6   
 7   接收:通过另一个页面在onload生命周期中接收 
 8    
 9 2.编程式触发
10   小程序跳转:
11   wx.navigateTo()  //带历史回退
12   wx.redirectTo() //不保留历史,跳转到另一个页面,不能返回到上一页面          
13   wx.switchTab() //只跳转到tabBar页面,不带回退
14   wx.reLaunch() //即能跳转到tabBar页面,也能跳转到非tabBar页面,不带历史回退    

4.小程序的数据请求

 1 wx.request({
 2   url:‘‘, //请求的接口地址
 3   method:‘get|post|put|delete‘,//请求方式 
 4   header:{},//设置请求头
 5   data:{}, //传参
 6   success() {}, //成功返回
 7   fail() {},// 失败返回
 8 
 9 })
10 
11 //注意:
12 //1.小程序请求的接口必须是https协议,不能请求本地的数据
13 //2. 请求接口之前要提前配置接口请求:
14   //第一种方法:在微信小程序后台配置request合法域名
15   //第二种方法:在开发者工具--详情--本地配置--勾选‘不校验合法域名’
16 //3.请求成功和失败的回调最好写成箭头函数的形式  
17     //普通函数的话  this指向的是钩子函数  请求回来的数据用this.setData时会出错
18     //加一个let _this=this  就可以了   
19     //箭头函数的形式可以完全避免这种麻烦

 

以上是关于微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)的主要内容,如果未能解决你的问题,请参考以下文章

2020-07-31 微信小程序数据刷新与重新加载

微信小程序的生命周期和路由

微信小程序在每个页面中存在的生命周期

微信小程序在每个页面中存在的生命周期

微信小程序常用api及语法

微信小程序整理