参考:https://blog.csdn.net/weixin_50240716/article/details/122826857
参考:官方文档-应用生命周期
一、应用生命周期(写在app.vue中)
onLaunch:当整个项目启动,渲染完成时触发(全局只触发一次)
onShow:小程序显示出来(从后台进入前台显示,可以触发多次)
onHide:小程序隐藏起来时触发(从前台进入后台,可以触发多次)
onError: 出现异常时触发
export default {
//当整个项目启动,渲染完成时触发(全局只触发一次)
onLaunch: function() {
console.log('App Launch')
},
//小程序显示出来(从后台进入前台显示,可以触发多次)
onShow: function() {
console.log('App Show')
},
//小程序隐藏起来时触发(从前台进入后台,可以触发多次)
onHide: function() {
console.log('App Hide')
},
//报错时触发
onError() {
},
//对nvue页面发送的数据进行监听,可参考nvue
onUniNViewMessage(){
},
//对未处理的Promise拒绝事件监听函数
onUnhandledRejection() {
},
//页面不存在监听函数
onPageNotFound() {
},
//监听系统主题变化
onThemeChange() {
}
}
二、页面生命周期
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参)
onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
onHide 监听页面隐藏,通过tabbar切换页面,也是隐藏而不是卸载
onUnload 监听页面卸载
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新。前提开启下拉刷新。
下拉刷新开启:pages.json中全局配置,或者页面的style中配置或通过 uni.startPullDownRefresh()方法
下拉刷新关闭:uni.stopPullDownRefresh()
onReachBottom:上拉加载,页面滚动到底部的事件,在事件中可以加载下一页数据
在pages.json中的页面style中,通过onReachBottomDistance可以
配置页面上拉触底事件触发距页面底部的距离,默认50px
export default {
data() {
return {
title: 'Hello'
}
},
onShow() {
console.log('index显示了');
},
onLoad() {
},
//点击tab时触发,参数为objec,
onTabItemTap() {
},
//用户点击右上角分享
onShareAppMessage() {
},
//监听页面滚动,参数为objec
onPageScroll() {
},
//监听原生标题栏按钮点击时间,参数为object
onNavigationBarButtonTap() {
},
//监听页面返回
onBackPress() {
},
//监听原生标题栏搜索输入框输入点击时
onNavigationBarSearchInputClicked() {
},
//监听原生标题栏搜索输入框输入内容变化事件
onNavigationBarSearchInputChanged() {
},
////监听原生标题栏搜索输入框,点击“搜索”按钮时
onNavigationBarSearchInputConfirmed() {
},
//转发朋友圈时
onShareTimeline() {
},
//右上角收藏时
onAddToFavorites() {
},
methods: {
}
}
三、组件生命周期
beforeCreate(): 在实例初始化之后被调用,此时data中的数据还是undefined
created(): 在实例创建完成后被立即调用。此时data中的数据和基本方法都可以访问了
beforeMount(): 在挂载开始之前被调用.
mounted(): 挂载到实例上去之后调用,注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTick
beforeUpdate(): 数据更新时调用,发生在虚拟 DOM 打补丁之前
updated(): 由于数据更改导致的虚拟 DOM 重新渲染和打补丁
beforeDestroy: 实例销毁之前调用
destroyed(): Vue 实例销毁后调用。