1.​应用生命周期

以uni-app框架为例:(其他语言大致相同)

​uni-app​​ 支持如下应用生命周期函数:

函数名

说明

onLaunch

当​​uni-app​​ 初始化完成时触发(全局只触发一次)

onShow

当 ​​uni-app​​ 启动,或从后台进入前台显示

onHide

当 ​​uni-app​​ 从前台进入后台

onError

当 ​​uni-app​​ 报错时触发


注意

  • 应用生命周期仅可在​​App.vue​​中监听,在其它页面监听无效。(
  • onlaunch里进行页面跳转,如遇白屏报错,请参考​​https://ask.dcloud.net.cn/article/35942​
  • onPageNotFound 页面实际上已经打开了(比如通过分享卡片、小程序码)且发现页面不存在,才会触发,api 跳转不存在的页面不会触发(如 uni.navigateTo)


2.页面生命周期

​uni-app​​ 支持如下页面生命周期函数:

uni-app生命周期函数_初始化


​onInit​使用注意

  • 仅百度小程序基础库 3.260 以上支持 onInit 生命周期
  • 其他版本或平台可以同时使用 onLoad 生命周期进行兼容,注意避免重复执行相同逻辑
  • 不依赖页面传参的逻辑可以直接使用 created 生命周期替代

3.组建生命周期函数

​uni-app​ 组件支持的生命周期,与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期:

函数名

说明

平台差异说明

最低版本

beforeCreate

在实例初始化之后被调用。​​详见​



created

在实例创建完成后被立即调用。​​详见​



beforeMount

在挂载开始之前被调用。​​详见​



mounted

挂载到实例上去之后调用。​​详见​​​ 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用​​$nextTick​​​​Vue官方文档​



beforeUpdate

数据更新时调用,发生在虚拟 DOM 打补丁之前。​​详见​

仅H5平台支持


updated

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。​​详见​

仅H5平台支持


beforeDestroy

实例销毁之前调用。在这一步,实例仍然完全可用。​​详见​



destroyed

Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。​​详见​