应用生命周期

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

函数名 说明
onLaunch uni-app 初始化完成时触发(全局只触发一次)
onShow 当 uni-app 启动,或从后台进入前台显示
onHide 当 uni-app 从前台进入后台
onError 当 uni-app 报错时触发
onUniNViewMessage 对 nvue 页面发送的数据进行监听,可参考 nvue 向 vue 通讯
onUnhandledRejection 对未处理的 Promise 拒绝事件监听函数(2.8.1+)
onPageNotFound 页面不存在监听函数
onThemeChange 监听系统主题变化

这几个函数主要还是在App.vue这个文件进行定义,

注意

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

页面生命周期

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

函数名 说明 平台差异说明 最低版本
onInit 监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad 百度小程序 3.1.0+
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例    
onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面    
onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发    
onHide 监听页面隐藏    
onUnload 监听页面卸载    
onResize 监听窗口尺寸变化 App、微信小程序  
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新,参考示例    
onReachBottom 页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项    
onTabItemTap 点击 tab 时触发,参数为Object,具体见下方注意事项 微信小程序、QQ小程序、支付宝小程序、百度小程序、H5、App(自定义组件模式)  
onShareAppMessage 用户点击右上角分享 微信小程序、QQ小程序、支付宝小程序、字节小程序、快手小程序  
onPageScroll 监听页面滚动,参数为Object nvue暂不支持  
onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为Object App、H5  
onBackPress 监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:onBackPress 详解。支付宝小程序只有真机能触发,只能监听非navigateBack引起的返回,不可阻止默认行为。 app、H5、支付宝小程序  
onNavigationBarSearchInputChanged 监听原生标题栏搜索输入框输入内容变化事件 App、H5 1.6.0
onNavigationBarSearchInputConfirmed 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。 App、H5 1.6.0
onNavigationBarSearchInputClicked 监听原生标题栏搜索输入框点击事件 App、H5 1.6.0
onShareTimeline 监听用户点击右上角转发到朋友圈 微信小程序 2.8.1+
onAddToFavorites 监听用户点击右上角收藏 微信小程序 2.8.1+

onInit使用注意

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

onReachBottom使用注意 可在pages.json里定义具体页面底部的触发距离onReachBottomDistance,比如设为50,那么滚动页面到距离底部50px时,就会触发onReachBottom事件。

如使用scroll-view导致页面没有滚动,则触底事件不会被触发。scroll-view滚动到底部的事件请参考scroll-view的文档

onPageScroll (监听滚动、滚动监听、滚动事件)参数说明:

属性 类型 说明
scrollTop Number 页面在垂直方向已滚动的距离(单位px)

注意

  • onPageScroll里不要写交互复杂的js,比如频繁修改页面。因为这个生命周期是在渲染层触发的,在非h5端,js是在逻辑层执行的,两层之间通信是有损耗的。如果在滚动过程中,频发触发两层之间的数据交换,可能会造成卡顿。
  • 如果想实现滚动时标题栏透明渐变,在App和H5下,可在pages.json中配置titleNView下的type为transparent,参考。
  • 如果需要滚动吸顶固定某些元素,推荐使用css的粘性布局,参考插件市场。插件市场也有其他js实现的吸顶插件,但性能不佳,需要时可自行搜索。
  • 在App、微信小程序、H5中,也可以使用wxs监听滚动,参考;在app-nvue中,可以使用bindingx监听滚动,参考。
  • onBackPress上不可使用async,会导致无法阻止默认返回

uniApp 生命周期【应用生命周期 和 页面生命周期】相关推荐

  1. 应用生命周期、页面生命周期、组件生命周期

    一 应用生命周期 函数名 说明 应用场景 onLaunch 当 uni-app 应用初始化完成时触发,全局只触发一次 一般用于查看用户是否授权.获取用户的设备信息等 onShow 当应用启动,或从后台 ...

  2. onShow onHide页面生命周期不执行

    uniapp页面生命周期中:onShow onHide页面生命周期不执行 不知道什么原因 解决:使用vue生命周期代替 created 和 destoryed

  3. uni-app 页面生命周期

    uni-app 页面生命周期 页面生命周期 uni-app 支持如下页面生命周期函数: onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参) onShow 监 ...

  4. uniapp应用和页面生命周期

    应用生命周期 应用生命周期仅可在 App.vue 中监听,在其它页面监听无效. onLaunch 当 uni-app 初始化完成时触发(全局只触发一次) onShow 当 uni-app 启动,或从后 ...

  5. uni-app页面生命与vue生命周期

    问题 前端新手小白,入手uni-app框架,一脸懵逼,从最简单的页面生命周期开始吧! 分析 uni-app的页面生命周期函数: onInit 监听页面初始化,为上个页面传递的数据,参数类型为 Obje ...

  6. vue的生命周期、uni-app页面生命周期

    vue的生命周期 4大阶段8个钩子 生命周期 在该生命周期发生了什么 beforeCreate 实例刚被创建出来,data,methods还没有初始化 created 实例创建完成,data和meth ...

  7. uni-app中的应用生命周期,页面生命周期,组件生命周期

    一.应用生命周期(写在app.vue中) onLaunch:当整个项目启动,渲染完成时触发(全局只触发一次) onShow:小程序显示出来(从后台进入前台显示,可以触发多次) onHide:小程序隐藏 ...

  8. [转]ASP.NET页面生命周期描述

    ASP.NET页面生命周期描述 vigorID:Vigorcsdn 在以前写个一篇关于ASP.NET页面生命周期的草稿,最近又看了看ASP.NET,做个补充,看看页面初始过程到底是怎么样的 下面是AS ...

  9. WebForm页面生命周期及asp.net运行机制

    转载至:https://www.cnblogs.com/liangxiaofeng/p/5620033.html 1.先上几张原理图着重理解: 现在针对第四副图原理进行解析: 流程: 1.浏览器发送请 ...

最新文章

  1. 【续】RUP模型与XP模型
  2. ubuntu 14.04 安装 cuda 6.5
  3. js 设计模式学习(3)
  4. Nancy简单实战之NancyMusicStore(二):打造首页
  5. 宜阳一高中历年录取分数线_上海高中TOP30!从录取分数线看上海高中排名!
  6. GitHub入门与实践 读书笔记一:欢迎来到GitHubde世界
  7. excel删除重复数据保留一条_VBA利用字典删除重复行,保留唯一值
  8. 你以为的论文答辩,实际的论文答辩,看着看着就哭系列
  9. 【正则表达式】正则表达式匹配${xxx}
  10. 铁路售票系统_黑龙江一学生购买的火车票上惊现“学猪”字样!铁路部门给出回应...
  11. ffmpeg 视频合并
  12. php重写mysql类_如何成功重写旧的mysql-php代码与已弃用的mysql_ *函数?
  13. java 汉字按照拼音排序
  14. Windows无法启动 VMware Workstation server错误1068依赖服务或组无法启动
  15. IT基础架构变革,Hitachi Vantara如何解决超融合(HCI)的真正痛点?
  16. vscode 是干什么用的_vscode里的launch.json是干什么用的
  17. js 调用谷歌插件截图跨域的iframe---FireShot
  18. 摇杆控制方向原理_摇杆电位器原理及结构
  19. dataworks 生成表血缘依赖
  20. 机器学习专有名词归纳

热门文章

  1. Android Push哪家强——分析豌豆荚1400个APP
  2. win10和ubuntu16双系统安装
  3. 神书《纳瓦尔宝典:财富和幸福指南》说了些什么
  4. 解决python UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xb5‘ in position 255: illegal mult
  5. Bert预训练新法则!
  6. greenplum-cc-web4.0监控安装
  7. 华硕Fonepad 8、MeMO Pad 7以及MeMO Pad 8也随之登场
  8. 谈谈浏览器中富文本编辑器的技术演进
  9. Java线程的6种状态(NEW,RUNNABLE,BLOCKED,WAITING,TINED_WATING,TEMINATE)
  10. 从配置 Kivy、Buildozer 到 Android app 运行