开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情
前言
生命周期,对每一个前端框架来说都非常重要,有很多代码都需要在合适的生命周期中编写和使用。uniapp集合了微信小程序和vue框架的特点,所以uniapp的生命周期分为三类:
- 应用生命周期(小程序规范)
- 页面生命周期(小程序规范)
- 组件生命周期(vue规范)
应用生命周期
应用生命周期是在App.vue文件中定义的,在我们创建一个uniapp项目的时候,在App.vue里可以看到默认使用了几个应用生命周期的函数,这些应用生命周期函数有什么用呢?
像第一个onLaunch表示uniapp初始化完成时触发(全局只触发一次),onShow和onHide表示应用的显示和隐藏,当我们从应用返回主屏幕时触发onHide,再从主屏幕切回应用里触发onShow
我们将项目运行到小程序上演示应用生命周期的函数的触发,当第一次进入小程序的时候触发了onLaunch和onShow,点击模拟操作的Home模拟手机按了Home键返回主屏幕,触发了onHide,然后点击收藏重新回到小程序又触发了onShow,但是并没有触发onLaunch,因为onLaunch全局只触发一次,除非你清理后台
还有几个应用生命周期函数就不一一演示,只演示最常用的这几个,具体使用可以查看官方文档
页面生命周期
在项目的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页面显示');
}
还有很多有趣的页面生命周期函数,例如onPullDownRefresh监听用户下拉操作,可以用来刷新数据,onReachBottom页面滚动到底部可以用来加载更多数据,为我们省略了很多代码
组件生命周期函数
组件生命周期用到的规范其实参考了vue的,和页面生命周期有点类似,至于为什么用上vue的规范我也不知道,遵循就好了,对于组件来说,是不能使用小程序的生命周期的,得改回用vue的规范