【UniApp】-uni-app-OptionAPI应用生命周期和页面生命周期

前言
- 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-修改组件主题和样式
- 那么了解完了uni-app-修改组件主题和样式之后,这篇文章来给大家介绍一下 uni-app-OptionAPI应用生命周期和页面生命周期
- 首先不管三七二十一,先来新建一个项目
搭建演示环境
创建一个全新的项目:

然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。
- 经过如上的这么一顿操作之后,就可以搭建完毕运行环境,与编码环境
- 接下来就可以开始进行介绍 uni-app-OptionAPI应用生命周期和页面生命周期内容了
步入正题
应用生命周期
- 在看这个应用生命周期之前,你们肯定或许有这么一个疑问就是在哪监听应用的生命周期呢?其实很简单,就是在 App.vue文件中
- 打开 App.vue文件,可以看到分别有onLaunch、onShow、onHide这几个生命周期函数,分别对应的是应用的生命周期函数
那么我是怎么知道的呢?其实很简单,我们可以去官网查看一下,uni-app-应用生命周期

官方文档中介绍了很多,比较常用的就是 onLaunch、onShow、onHide 这几个生命周期函数, 所以我们就来看一下这几个生命周期函数的作用就可以了,其他的自己去试一下就可以了。
- onLaunch:当uni-app初始化完成时触发(全局只触发一次)
- onShow:当uni-app启动,或从后台进入前台显示
- onHide:当uni-app从前台进入后台
演示方式非常简单,我们直接将项目以微信小程序的方式运行起来,然后在微信小程序中进行操作,当我运行起来之后,微信小程序控制台中就打印出来了我们在生命周期函数中打印的内容,如下图所示:

那么 onHide 的内容咋没有打印出来呢?其实很简单,因为 onHide 是当 uni-app 从前台进入后台的时候才会触发,所以我们需要将微信小程序切换到后台,之所以用微信小程序运行的原因就是有这么一个功能,可以将微信小程序切换到后台,如下图所示:

当我点击之后,就可以看到 onHide 的内容也打印出来了,如下图所示:

页面生命周期
在看页面生命周期之前,我们先配置一下 tabBar:
"tabBar": {
    "color": "#7A7E83",
    "selectedColor": "#3cc51f",
    "borderStyle": "black",
    "backgroundColor": "#ffffff",
    "list": [{
        "pagePath": "pages/index/index",
        "text": "首页"
    }, {
        "pagePath": "pages/account/account",
        "text": "账号"
    }]
}
然后在 pages 目录下新建一个账号页面:

index.vue 页面中的代码如下所示:
<template>
	<view>
		首页
	</view>
</template>
<script>
	export default {
	}
</script>
<style>
</style>
account.vue 页面中的代码如下所示:
<template>
	<view>
		账号
	</view>
</template>
<script>
	export default {
	}
</script>
<style>
</style>
搭建完毕之后,我们就可以来看一下页面生命周期了,页面生命周期的介绍可以去官网查看一下,uni-app-页面生命周期

官方文档中介绍了很多,说什么支持 Vue 的组件生命周期还扩展了一些额外的生命周期函数,我给大家介绍一部分,其他的自己去试一下就可以了。
- onLoad:监听页面加载
- onShow:监听页面显示
- onReady:监听页面初次渲染完成
- onHide:监听页面隐藏
- onPullDownRefresh:监听用户下拉动作
- onReachBottom:页面上拉触底事件的处理函数
那么我们就来看一下这几个生命周期函数的作用就可以了,其他的自己去试一下就可以了。
更改 index.vue 页面中的代码如下所示:
<script>
	export default {
		onLoad() {
			console.log("首页 onLoad");
		},
		onShow() {
			console.log("首页 onShow");
		},
		onReady() {
			console.log("首页 onReady");
		},
		onHide() {
			console.log("首页 onHide");
		},
		onPullDownRefresh() {
			console.log("首页 onPullDownRefresh");
		},
		onReachBottom() {
			console.log("首页 onReachBottom");
		},
	}
</script>
更改 account.vue 页面中的代码如下所示:
<script>
    export default {
        onLoad() {
            console.log("账号 onLoad");
        },
        onShow() {
            console.log("账号 onShow");
        },
        onReady() {
            console.log("账号 onReady");
        },
        onHide() {
            console.log("账号 onHide");
        },
        onPullDownRefresh() {
            console.log("账号 onPullDownRefresh");
        },
        onReachBottom() {
            console.log("账号 onReachBottom");
        },
    }
</script>
然后我们就可以运行起来,然后在微信小程序控制台中就可以看到我们在生命周期函数中打印的内容,我这里录制一个视频,大家可以看一下:

通过观察发现是不是还有我们的上拉刷新和下拉加载的生命周期函数没有打印出来呢?其实很简单,我来改造一下首页的代码,如下所示:
<template>
    <view>
        <text>首页</text>
        <view class="content">
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 1</view>
            <view class="item">item 88</view>
            <view class="item">item 99</view>
        </view>
    </view>
</template>
<style>
    .item {
        width: 100%;
        height: 200rpx;
    }
</style>
改造之后还不够,如果要想实现下拉加载和上拉刷新,还需要更改 pages.json 文件,我这里是以首页页面为例,需要在首页对象的 style 中配置 enablePullDownRefresh 和 onReachBottomDistance 属性。
- enablePullDownRefresh:是否开启下拉刷新
- onReachBottomDistance:页面上拉触底事件触发时距页面底部距离,单位为px(设置上拉加载更多的距离)
onReachBottomDistance 有默认值,所以我们不需要配置,直接配置 enablePullDownRefresh 属性即可,如下所示:
{
    "path": "pages/index/index",
    "style": {
        "enablePullDownRefresh": true
    }
}
然后我们就可以运行起来,然后在微信小程序控制台中就可以看到我们在 onPullDownRefresh 和 onReachBottom 生命周期函数中打印的内容,我这里录制一个视频,大家可以看一下:

总结
好,经过上面的介绍完毕之后,我们就可以来总结一下 uni-app-OptionAPI应用生命周期和页面生命周期的内容了。
- 应用生命周期:onLaunch、onShow、onHide
- 页面生命周期:onLoad、onShow、onReady、onHide、onPullDownRefresh、onReachBottom
其他的生命周期函数,大家可以去官网查看一下,自己去试一下就可以了。
最后
大家好我是 BNTang, 一个热爱分享的技术的开发者,如果大家觉得我的文章对你有帮助的话,可以关注我的公众号 JavaBoyL,我会在公众号中分享一些IT技术和一些个人的见解,谢谢大家的支持。

【UniApp】-uni-app-OptionAPI应用生命周期和页面生命周期的更多相关文章
- 微信APP生命周期、页面生命周期
		目录 小程序的启动流程 app生命周期 页面的生命周期 页面的生命周期(图) 小程序的启动流程 我们画一个图来表示一下,整个小程序的启动流程,我们就知道了: app生命周期 执行App()函数也就是注 ... 
- 微信小程序生命周期、页面生命周期、组件生命周期
		1. 生命周期 App(全局) 位置:项目根目录app.js文件 App({ onLaunch (options) { // console.log('小程序初始化') }, onShow(optio ... 
- 微信小程序:页面生命周期
		小程序生命周期分为应用生命周期和页面生命周期 1.Onload:页面加载时触发,一般在onLoad中发送异步请求来初始化页面数据. 2.onShow:页面显示时触发 3.onReady:页面初次渲染完 ... 
- asp.net页面生命周期
		Asp.Net页面生命周期 本文转载自:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html 一.什么是Asp.Net页面生命周期 当 ... 
- .net学习笔记---IIS 处理模型及ASP.NET页面生命周期
		本文是基于IIS6的处理模型. 当一个客户端页面访问IIS试图获取一些信息的时候,发生了什么事情?一个请求在通过了HTTP管道后又发生了什么?本文主要是描述这两个过程,即IIS处理asp.net请求和 ... 
- Asp.Net页面生命周期--转发(学海无涯)
		一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ... 
- Asp.Net页面生命周期【转载,地址:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html】
		一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ... 
- 【转载】Asp.Net页面生命周期
		一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ... 
- Asp.Net页面生命周期[转]
		一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ... 
- Uni-app页面生命周期
		学习任何框架必须将其生命周期了然于胸. uni-app支持如下页面生命周期函数: onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为object(用于页面传参),示例中可参考 onSh ... 
随机推荐
- 关于 Llama 2 的一切资源,我们都帮你整理好了
			Llama 2 是一个由 Meta 开发的大型语言模型,是 LLaMA 1 的继任者.Llama 2 可通过 AWS.Hugging Face 获取,并可以自由用于研究和商业用途.Llama 2 预训 ... 
- QTreeView自绘实现酷炫样式
			本篇文章结合笔者的经历,介绍一种通过重写QTreeView绘制事件,使用QPainter来实现好看的列表的方式. 导语 Hi,各位读者朋友,大家好.相信大家在日常的工作中,经常会接触到QTreeVie ... 
- 带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击
			本文分享自华为云社区<[论文阅读] (21)S&P21 Survivalism: Living-Off-The-Land经典离地攻击>,作者: eastmount . 摘要 随着恶 ... 
- 52条SQL语句,性能优化!
			52条SQL语句,性能优化! SQL语句性能优化 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对 ... 
- Java爬虫实战系列——常用的Java网络爬虫库
			常用的Java网络爬虫库 Java 开发语言是业界使用最广泛的开发语言之一,在互联网从业者中具有广泛的使用者,Java 网络爬虫可以帮助 Java 开发人员以快速.简单但广泛的方式为各种目的抓取数据. ... 
- WPF使用Blazor的快速案例
			下面我们将讲解在WPF中使用Blazor,并且使用Blazor做一些文件编辑操作,下面是需要用到的东西 WPF Blazor Masa Blazor Monaco 安装Masa Blazor模板 使用 ... 
- API接口获取快手商品详情(封装代码)
			快手是中国最大的短视频平台之一,也是许多电商企业进行推广的重要渠道.为了更好地了解快手的商品信息,我们可以通过API接口来获取商品详情. 首先,我们需要了解快手API接口和相应的文档 接下来,我们需要 ... 
- hihocoder 1290 DP
			题目利用DP思想,dp[i][j][k]表示robot跑到i行j列目前移动方向为k时,所需要的最小的flip.其中0 <= i <= N,0 <= j <= M,k = rig ... 
- C#结合OpenCVSharp4使用直方图算法比较图片相似度
			C#结合OpenCVSharp4使用直方图算法比较图片相似度 直方图有灰度直方图.颜色直方图,如果是灰度图像,那么就用灰度直方图,这里使用颜色直方图来计算两个图片的相似度. 这里只记录如何使用,至于算 ... 
- SonarQube系列-架构与外部集成
			介绍 Sonar是一个代码质量管理的开源平台,基于Java开发的,用于管理源代码的质量,通过插件形式,可以支持包括java.C#.JavaScript等二十余种编程语言的代码质量管理与检测. 它具有免 ... 
