uniapp的生命周期

233 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

前言

生命周期,对每一个前端框架来说都非常重要,有很多代码都需要在合适的生命周期中编写和使用。uniapp集合了微信小程序和vue框架的特点,所以uniapp的生命周期分为三类:

  • 应用生命周期(小程序规范)
  • 页面生命周期(小程序规范)
  • 组件生命周期(vue规范)

应用生命周期

应用生命周期是在App.vue文件中定义的,在我们创建一个uniapp项目的时候,在App.vue里可以看到默认使用了几个应用生命周期的函数,这些应用生命周期函数有什么用呢?

图片.png

像第一个onLaunch表示uniapp初始化完成时触发(全局只触发一次),onShow和onHide表示应用的显示和隐藏,当我们从应用返回主屏幕时触发onHide,再从主屏幕切回应用里触发onShow

我们将项目运行到小程序上演示应用生命周期的函数的触发,当第一次进入小程序的时候触发了onLaunch和onShow,点击模拟操作的Home模拟手机按了Home键返回主屏幕,触发了onHide,然后点击收藏重新回到小程序又触发了onShow,但是并没有触发onLaunch,因为onLaunch全局只触发一次,除非你清理后台

2.gif

还有几个应用生命周期函数就不一一演示,只演示最常用的这几个,具体使用可以查看官方文档

页面生命周期

在项目的pages文件夹里有许多文件夹,每个文件夹里都有一个vue文件,这就是一个单独的页面了,页面也存在生命周期,页面生命周期存在兼容性,有一些页面生命周期函数只能在指定平台使用,具体使用可以查看官方文档

页面生命周期函数比较常用的有onLoad,onShow,onReady,onHide,一般页面的一些初始化操作是在onLoad完成的,例如发起网络请求获取数据实现页面渲染

onShow和onHide代表页面的显示和隐藏,当我们切换页面的时候触发,例如在index页面使用onHide,在order页面使用onShow,然后从index页面跳转到order页面,分别触发了这两个函数

//index页面
onHide() {
    console.log('index页面隐藏');
}

//order页面
onShow() {
    console.log('order页面显示');
}

2.gif

还有很多有趣的页面生命周期函数,例如onPullDownRefresh监听用户下拉操作,可以用来刷新数据,onReachBottom页面滚动到底部可以用来加载更多数据,为我们省略了很多代码

组件生命周期函数

组件生命周期用到的规范其实参考了vue的,和页面生命周期有点类似,至于为什么用上vue的规范我也不知道,遵循就好了,对于组件来说,是不能使用小程序的生命周期的,得改回用vue的规范