• uni-app生命周期


    uni-app的生命周期包括:应用生命周期、页面生命周期、组件生命周期

    一、应用生命周期(只能在App.vue文件中监听)

    函数说明
    onLaunch初始化完成时触发(全局只触发一次)
    onShow启动时或从后台进入前台显示
    onHide从前台进入后台
    onError报错时触发
    onPageNotFound页面不存在监听函数

    在App.vue文件中打印

    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在控制台输出可以看到执行顺序
    在这里插入图片描述

    二、页面声明周期

    函数说明
    onLoad监听页面加载,其参数为上个页面传递的数据,参数类型为 Object
    onShow监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
    onReady监听页面初次渲染完成
    onHide监听页面隐藏
    onUnload监听页面卸载
    onResize监听窗口尺寸变化
    onPullDownRefresh监听用户下拉动作,一般用于下拉刷新
    onReachBottom页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体官方文档注意事项
    onPageScroll监听页面滚动,参数为Object
    onShareAppMessage用户点击右上角分享
    onShareTimeline监听用户点击右上角转发到朋友圈
    onAddToFavorites监听用户点击右上角收藏

    更多页面生命周期细节,详见官方文档

    在page页面中打印
    在这里插入图片描述
    在控制台输出可以看到执行顺序

    在这里插入图片描述

    三、组件生命周期(同Vue组件生命周期)

    函数说明
    beforeCreate实例初始化之前调用
    created创建完成后立即调用
    beforeMount挂载前调用
    mounted挂载后调用
    beforeUpdate数据更新时调用
    updated数据更新重新渲染
    beforeDestroy实例销毁之前调用
    destroyed实例销毁之后调用

    H5和微信小程序的生命周期函数调用顺序不一致

    H5

    page beforeCreate
    page onLoad
    page onShow
    page created
    page beforeMount
    
    component beforeCreate
    component created
    component beforeMount
    component mounted
    
    page onReady
    page mounted
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    微信小程序

    page beforeCreate
    page created
    page beforeMount
    
    component beforeCreate
    component created
    component beforeMount
    
    page onLoad
    page onShow
    
    component mounted
    
    page mounted
    page onReady
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    一般情况下,主要使用的周期函数如下,他们的执行顺序是固定的

    page onLoad
    
    component mounted
    
    page mounted
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    测试代码

    页面

    
    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165

    组件 components/TestComponent.vue

    
    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
  • 相关阅读:
    智慧灾备解决方案-最新全套文件
    Java语言中的泛型的概念和使用方法
    注意!11月PMP考试时间已定!
    CentOS 7 上编译和安装 SQLite 3.9.0
    【centos7】wsl2:mia编译安装
    curl认证过期
    【C语言笔记】dll库“__declspec”属性关键字总结,dllexport,dllimport
    解决使用`npm install`或`npm i`命令之后报`Unexpected token in JSON at position`错误的问题
    链表(单链表、双链表)
    Shiro学习之权限认证
  • 原文地址:https://blog.csdn.net/Quentin0823/article/details/133760978