打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
uniapp的生命周期【uniapp 专题 03】

作者:坚果

公众号:"大前端之旅"

华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

看过我的安卓,鸿蒙,小程序,或者Flutter的都知道,接下来我要说什么,如果不出意外的话,当然是生命周期了,关于生命周期不外语有两个,一个是应用的生命周期,一个是页面的生命周期。

1.应用生命周期

uni-app 支持 onLaunch、onShow、onHide 等应用生命周期函数,

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

注意

应用生命周期仅可在App.vue中监听,在其它页面监听无效。

  • onlaunch里进行页面跳转,如遇白屏报错,

    此时需要延迟做跳转处理。

    由于性能优化,HBuilderX 1.9.8和HBuilderX1.9.4的执行时机有所不同。一些在HBuilderX 1.9.4下无需延时的代码,在升级到HBuilderX 1.9.8报错。先请延迟处理。

    在HBuilderX 1.9.9+版本,已在底层修复此问题,自动兼容冲突,无需开发者再写延时代码。所以在此之前看一下你的HBuilderX的版本还是很有必有的。

  • onPageNotFound 页面实际上已经打开了(比如通过分享卡片、小程序码)且发现页面不存在,才会触发,api 跳转不存在的页面不会触发(如 uni.navigateTo)

HBuilderX版本查看,在编辑器的关于哪儿

image-20220126010518931

2.页面生命周期

uni-app 支持 onLoad、onShow、onReady 等生命周期函数

函数名说明平台差异说明最低版本
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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
uniapp——框架整理及分析总结
uni-app
从入门到实践:Uni-app跨平台开发与应用
移动APP和小程序的低代码开发平台有哪些
uniapp 使用 addInterceptor 实现登录拦截_uniapp登录拦截
uniapp 之 复制文本内容(兼app+h5)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服