前言

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

搭建演示环境

创建一个全新的项目:

然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。

  • 经过如上的这么一顿操作之后,就可以搭建完毕运行环境,与编码环境
  • 接下来就可以开始进行介绍 uni-app-OptionAPI应用生命周期和页面生命周期内容了

步入正题

应用生命周期

  • 在看这个应用生命周期之前,你们肯定或许有这么一个疑问就是在哪监听应用的生命周期呢?其实很简单,就是在 App.vue 文件中
  • 打开 App.vue 文件,可以看到分别有 onLaunchonShowonHide 这几个生命周期函数,分别对应的是应用的生命周期函数

那么我是怎么知道的呢?其实很简单,我们可以去官网查看一下,uni-app-应用生命周期

官方文档中介绍了很多,比较常用的就是 onLaunchonShowonHide 这几个生命周期函数, 所以我们就来看一下这几个生命周期函数的作用就可以了,其他的自己去试一下就可以了。

  • 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 的组件生命周期还扩展了一些额外的生命周期函数,我给大家介绍一部分,其他的自己去试一下就可以了。

  1. onLoad:监听页面加载
  2. onShow:监听页面显示
  3. onReady:监听页面初次渲染完成
  4. onHide:监听页面隐藏
  5. onPullDownRefresh:监听用户下拉动作
  6. 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应用生命周期和页面生命周期的更多相关文章

  1. 微信APP生命周期、页面生命周期

    目录 小程序的启动流程 app生命周期 页面的生命周期 页面的生命周期(图) 小程序的启动流程 我们画一个图来表示一下,整个小程序的启动流程,我们就知道了: app生命周期 执行App()函数也就是注 ...

  2. 微信小程序生命周期、页面生命周期、组件生命周期

    1. 生命周期 App(全局) 位置:项目根目录app.js文件 App({ onLaunch (options) { // console.log('小程序初始化') }, onShow(optio ...

  3. 微信小程序:页面生命周期

    小程序生命周期分为应用生命周期和页面生命周期 1.Onload:页面加载时触发,一般在onLoad中发送异步请求来初始化页面数据. 2.onShow:页面显示时触发 3.onReady:页面初次渲染完 ...

  4. asp.net页面生命周期

    Asp.Net页面生命周期 本文转载自:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html 一.什么是Asp.Net页面生命周期 当 ...

  5. .net学习笔记---IIS 处理模型及ASP.NET页面生命周期

    本文是基于IIS6的处理模型. 当一个客户端页面访问IIS试图获取一些信息的时候,发生了什么事情?一个请求在通过了HTTP管道后又发生了什么?本文主要是描述这两个过程,即IIS处理asp.net请求和 ...

  6. Asp.Net页面生命周期--转发(学海无涯)

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  7. Asp.Net页面生命周期【转载,地址:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html】

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  8. 【转载】Asp.Net页面生命周期

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  9. Asp.Net页面生命周期[转]

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  10. Uni-app页面生命周期

    学习任何框架必须将其生命周期了然于胸. uni-app支持如下页面生命周期函数: onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为object(用于页面传参),示例中可参考 onSh ...

随机推荐

  1. 使用 OpenTelemetry 构建 .NET 应用可观测性(1):什么是可观测性

    目录 什么是系统的可观测性(Observability) 为什么需要软件系统需要可观测性 可观测性的三大支柱 日志(Logging) 指标(Metrics) 分布式追踪(Distributed Tra ...

  2. 循环神经网络RNN完全解析:从基础理论到PyTorch实战

    在本文中,我们深入探讨了循环神经网络(RNN)及其高级变体,包括长短时记忆网络(LSTM).门控循环单元(GRU)和双向循环神经网络(Bi-RNN).文章详细介绍了RNN的基本概念.工作原理和应用场景 ...

  3. .NET周刊【8月第4期 2023-08-27】

    国内文章 AgileConfig-1.7.0 发布,支持 SSO https://www.cnblogs.com/kklldog/p/agileconfig-170.html AgileConfig ...

  4. Vue3中的几个坑,你都见过吗?

    Vue3 目前已经趋于稳定,不少代码库都已经开始使用它,很多项目未来也必然要迁移至Vue3.本文记录我在使用Vue3时遇到的一些问题,希望能为其他开发者提供帮助. 1. 使用reactive封装基础数 ...

  5. kubernates的集群安装-kubadm

    kubernates的集群安装-kubadm 环境准备工作(CentOS) 准备三台或以上的虚拟机 停用防火墙 sudo systemctl stop firewalld sudo systemctl ...

  6. 【.NET8】访问私有成员新姿势UnsafeAccessor(下)

    前言 书接上回,我们讨论了在.NET8中新增的UnsafeAccessor,并且通过UnsafeAccessor访问了私有成员,这极大的方便了我们代码的编写,当然也聊到了它当前存在的一些局限性,那么它 ...

  7. Record - Nov. 27st, 2020 - Exam. REC & SOL

    Problem. 1 Junior - Thinking Desc. & Link. 注意到值域乘范围刚好能过. 然后就存两个桶即可...(数组开小飞了半天才调出来...) Problem. ...

  8. CF1877 Div2 A-E 题解

    A 显然 \(n\) 个队的得分之和为 \(0\),因此答案为这 \(n-1\) 个数的和的相反数. 赛时代码 B 小贪心. 将所有人按 \(b\) 升序排序,\(b\) 相同时按 \(a\) 降序, ...

  9. Node.js中常用的设计模式有哪些?

    本文由葡萄城技术团队首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 设计模式简介 设计模式是由经验丰富的程序员在日积月累中抽象出的用以解决通用问题的可 ...

  10. Flex 布局项目实战,好像没那么难!

    在上篇文章别再用 float 布局了,flex 才是未来!中,我们聊到 Flex 布局才是目前主流的布局方式.在文章最后,我们还贴了一个案例,并且还浅浅地讲解了一下. 有些小伙伴说,这讲解得太粗了,要 ...