uniapp的生命周期分为三类,分别为应用生命周期、页面生命周期以及组件生命周期。
应用生命周期(在App.vue中使用):
- onLaunch:当uni-app初始化完成时触发(全局只触发一次)
- onShow:当uni-app启动,或从后台进入前台显示
- onHide:当uni-app从前台进入后台
- onError:当uni-app报错时触发
- onUniNViewMessage:对nvue页面发送的数据进行监听(一般不使用)
页面生命周期(在页面中添加):
-
onLoad:监听页面加载,它的参数为上个页面传递的数据,参数类型为Object(用于页面传参,可在此函数中请求数据)
-
onShow:监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面(可在此处填写监听数据变化的函数)
-
onReady:监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-
onHide:监听页面隐藏
-
onUnload:监听页面卸载
-
onResize:监听窗口尺寸变化(一般不使用)
-
onPullDownRefresh:监听用户下拉动作,一般用于下拉刷新
-
onReachBottom:页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉加载
-
onTabItemTap:点击tab时触发,参数为Object,如果点击的不是tab不会触发该函数
-
onShareAppMessage:用户点击右上角分享
-
onPageScroll:监听页面滚动,参数为Object{scrollTop:Number}(建议不要在该函数中写交互复杂的js,比如频繁修改页面,可能会造成卡顿)
-
onNavigationBarButtonTap:监听原生标题栏按钮点击事件,参数为Object(一般用于返回首页)
-
onBackPress:监听页面返回,返回event={from:backbutton、navigateBack},backbutton表示来源是左上角返回按钮或android返回键;navigateBack表示来源是uni.navigateBack
-
onNavigationBarSearchInputClicked:监听原生标题栏搜索输入框点击事件
组件生命周期(与vue标准组件的生命周期相同): -
beforeCreate:在实例初始化之后被调用
-
created:在实例创建完成后被立即调用
-
beforeMount:在挂载开始之前被调用
-
mounted:挂载到实例上去之后调用(该钩子在服务器端渲染期间不被调用)
-
beforeUpdate:数据更新时调用,发生在虚拟DOM打补丁之前(该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行)
-
updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子(该钩子在服务器端渲染期间不被调用)
-
beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用(该钩子在服务器端渲染期间不被调用)
-
destroyed:Vue实例销毁后调用(该钩子在服务器端渲染期间不被调用)