uni-app生命周期

应用生命周期

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

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

注意:
1、 应用生命周期仅可以在App.vue中监听,在其他页面监听无效。
2、 onLaunch里进行页面跳转,如遇白屏报错,请参考https://ask.dcloud.net.cn/article/35942

页面生命周期

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

函数名 说明 平台差异说明 最低版本
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参),参考示例
onShow 监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady 监听页面初次渲染。注意如果渲染速度快,会在页面进入动画完成前触发
onHide 监听页面隐藏
onUnload 监听页面卸载
onResize 监听窗口尺寸变化 App、微信小程序
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新,参考示例
onReachBottom 页面上拉触底事件的处理函数
onTabItemTap 点击tab时触发,参数为Object,具体见下方注意事项 微信小程序、百度小程序、H5、App(自定义组件模式)
onShareAppMessage 用户点击右上角分享 微信小程序、百度小程序、字节跳动小程序、支付宝小程序
onPageScroll 监听页面滚动,参数为Object
onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为Object App、H5
onBackPress 监听页面返回,返回event={from:backbutton、navigateBack},backbutton表示来源是左上角返回按钮或android返回键;navigateBack表示来源是uni.navigateBack;表示来源是uni.navigateBack;详细说明及使用:onBackPress详解
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+

onPageScroll参数说明:

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

onTabItemTap参数说明:

属性 类型 说明
index String 被点击tabItem的序号,从0开始
pagePath String 被点击tabItem的页面路径
text String 被点击tabItem的按钮文字

注意:

onTabItemTap常用于点击当前tabitem,滚动或刷新当前页面。如果是点击不同的tabitem,一定会触发页面切换。
如果想在App端实现点击某个tabitem不跳转页面,不能使用onTabItemTap,可以使用plus.nativeObj.view放一个区块盖住原先的tabitem,并拦截点击事件。
onTabItemTap在App端,从HBuilderX 1.9 的自定义组件编译模式开始支持。
避免在 onShow 里使用需要权限的 API(比如 setScreenBrightness() 等需要手机权限), 可能会再次触发onShow造成死循环。

onNavigationBarButtonTap参数说明:

属性 类型 说明
index Number 原生标题栏按钮数组的下标

onBackPress参数说明:

属性 类型 说明
from String 触发返回行为的来源:‘backbutton’——左上角导航栏按钮及安卓返回键; ‘navigateBack’——uni.navigateBack()方法。
// An highlighted block
export default{
     
	data() {
     
		return{
     };
	},
	onBackPress(options) {
     
		console.log('from:' + options.from)
	}
 }

你可能感兴趣的:(小程序)