参考:https://blog.csdn.net/weixin_50240716/article/details/122826857
参考:官方文档-应用生命周期

一、应用生命周期(写在app.vue中)

onLaunch:当整个项目启动,渲染完成时触发(全局只触发一次)
onShow:小程序显示出来(从后台进入前台显示,可以触发多次)
onHide:小程序隐藏起来时触发(从前台进入后台,可以触发多次)
onError: 出现异常时触发

  1. export default {
  2. //当整个项目启动,渲染完成时触发(全局只触发一次)
  3. onLaunch: function() {
  4. console.log('App Launch')
  5. },
  6. //小程序显示出来(从后台进入前台显示,可以触发多次)
  7. onShow: function() {
  8. console.log('App Show')
  9. },
  10. //小程序隐藏起来时触发(从前台进入后台,可以触发多次)
  11. onHide: function() {
  12. console.log('App Hide')
  13. },
  14. //报错时触发
  15. onError() {
  16. },
  17. //对nvue页面发送的数据进行监听,可参考nvue
  18. onUniNViewMessage(){
  19. },
  20. //对未处理的Promise拒绝事件监听函数
  21. onUnhandledRejection() {
  22. },
  23. //页面不存在监听函数
  24. onPageNotFound() {
  25. },
  26. //监听系统主题变化
  27. onThemeChange() {
  28. }
  29. }

二、页面生命周期

onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参)
onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
onHide 监听页面隐藏,通过tabbar切换页面,也是隐藏而不是卸载
onUnload 监听页面卸载
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新。前提开启下拉刷新。
下拉刷新开启:pages.json中全局配置,或者页面的style中配置或通过 uni.startPullDownRefresh()方法
下拉刷新关闭:uni.stopPullDownRefresh()
onReachBottom:上拉加载,页面滚动到底部的事件,在事件中可以加载下一页数据
在pages.json中的页面style中,通过onReachBottomDistance可以
配置页面上拉触底事件触发距页面底部的距离,默认50px

  1. export default {
  2. data() {
  3. return {
  4. title: 'Hello'
  5. }
  6. },
  7. onShow() {
  8. console.log('index显示了');
  9. },
  10. onLoad() {
  11. },
  12. //点击tab时触发,参数为objec,
  13. onTabItemTap() {
  14. },
  15. //用户点击右上角分享
  16. onShareAppMessage() {
  17. },
  18. //监听页面滚动,参数为objec
  19. onPageScroll() {
  20. },
  21. //监听原生标题栏按钮点击时间,参数为object
  22. onNavigationBarButtonTap() {
  23. },
  24. //监听页面返回
  25. onBackPress() {
  26. },
  27. //监听原生标题栏搜索输入框输入点击时
  28. onNavigationBarSearchInputClicked() {
  29. },
  30. //监听原生标题栏搜索输入框输入内容变化事件
  31. onNavigationBarSearchInputChanged() {
  32. },
  33. ////监听原生标题栏搜索输入框,点击“搜索”按钮时
  34. onNavigationBarSearchInputConfirmed() {
  35. },
  36. //转发朋友圈时
  37. onShareTimeline() {
  38. },
  39. //右上角收藏时
  40. onAddToFavorites() {
  41. },
  42. methods: {
  43. }
  44. }

三、组件生命周期

beforeCreate(): 在实例初始化之后被调用,此时data中的数据还是undefined
created(): 在实例创建完成后被立即调用。此时data中的数据和基本方法都可以访问了
beforeMount(): 在挂载开始之前被调用.
mounted(): 挂载到实例上去之后调用,注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTick
beforeUpdate(): 数据更新时调用,发生在虚拟 DOM 打补丁之前
updated(): 由于数据更改导致的虚拟 DOM 重新渲染和打补丁
beforeDestroy: 实例销毁之前调用
destroyed(): Vue 实例销毁后调用。