赞
踩
小程序的生命周期函数是在app.js
里面调用的,通过App(Object)
函数用来注册一个小程序,指定其小程序的生命周期回调。
onLaunch | 用户首次打开,当小程序初始化完成时,会触发onLaunch(全局触发一次) |
onShow | 小程序启动或从后台进入前台时,触发onShow,监听小程序显示 |
onHide | 小程序隐藏或从前台进入后台,触发onHide |
onError | 小程序发生脚本错误或 API 调用报错时触发 |
前台:前台指打开了小程序,并且在使用小程序,简单理解,就是我们可以看得到小程序。
后台: 当用户点击左上角关闭,或者直接切换到回微信或其他应用,再或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。
注意:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。
页面生命周期函数就是当你每进入/切换到一个新的页面的时候,就会调用的生命周期函数,同样通过Page(Object)
函数用来注册一个页面。
onLoad | 监听页面加载,触发onLoad,此时可以发送请求获取数据 |
onShow | 监听页面显示,触发onShow,页面显示,此时可以请求数据 |
onReady | 监听页面初次渲染完成,触发onReady,渲染⻚⾯元素和样式,此时可以获取页面元素的信息 |
onHide | 监听页面隐藏,如果小程序跳转到其它页面或进入后台运行时,触发onHide,此时可以终止任务 |
onUnload | 监听页面卸载,调用wx.redirectTo() 或wx.navigateBack(),触发onUnload,此时可以终止任务 |
onResize | 窗口尺寸改变时触发,最低基础库:2.4.0 |
注意:
1. onReady一个页面只会触发一次,建议少在此阶段获取元素信息,因为此时获取的只是固定的元素信息,获取到的元素信息不准确,通过this.setData设置的元素,需要在setData回调里查。
2. 对界面内容进行设置的 API 如wx.setNavigationBarTitle
,请在onReady
之后进行。
组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。
最重要的生命周期是 created
、attached、
detached
,包含一个组件实例生命流程的最主要时间点。
组件的的生命周期也可以在 lifetimes
字段内进行声明(这是推荐的方式,其优先级最高)
created | 组件实例刚刚被创建时执行 |
attached | 组件实例进入页面节点树时执行 |
ready | 组件在视图层布局完成后执行 |
moved | 组件实例被移动到节点树另一个位置时执行 |
detached | 组件实例被从页面节点树移除时执行 |
error | 组件方法抛出错误时执行 |
注意:
1. 组件实例刚刚被创建好时, created 生命周期被触发,此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data , 此时不能调用 setData。
2. 在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
3. 在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。
还有一些特殊的生命周期,它们并非与组件有很强的关联,但有时组件需要获知,以便组件内部处理。这样的生命周期称为“组件所在页面的生命周期”,在 pageLifetimes
定义段中定义。其中可用的生命周期包括:
show | 监听组件所在的页面被展示时执行 |
hide | 监听组件所在的页面被展示时执行 |
resize | 监听组件所在的页面尺寸变化时执行 |
routeDone | 监听组件所在页面路由动画完成时执行 |
注意:自定义 tabBar 的 pageLifetime 不会触发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。