当前位置: 首页 > news >正文

uni-app--》uni-app的生命周期讲解

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生

🛵个人主页:亦世凡华、

🛺系列专栏:uni-app

🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。

👀引言

        ⚓经过web前端的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了uni-app专栏,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第二站就是uni-app开发,希望看到我文章的朋友能对你有所帮助。

目录

uni-app生命周期

应用生命周期

页面生命周期

组件生命周期


uni-app生命周期

业务逻辑很多时候简单的解释一句话:“在合适的时机干合适的事”。在页面运行过程中,各个阶段的回调函数就是页面中的时机,我们也称之为:“生命周期钩子函数”,在业务中我们也会写到很多回调的逻辑,这些回调其实也就是我们自定义的时机,uni-app的生命周期钩子函数的回调函数有哪些呢?如下:

应用生命周期

应用生命周期主要是在App.vue中运行,相关的生命周期函数如下:

函数名说明
onLaunch当 uni-app 初始化完成时触发(全局只触发一次)
onShow当 uni-app 启动,或从后台进入前台显示
onHide

当 uni-app 从前台进入后台

onError当 uni-app 报错时触发
onUniNViewMessage当 nvue 页面发送的数据进行监听
onUnhandleRejection对未处理的 Promise 拒绝事件监听函数(2.8.1+)
onPageNotFound页面不存在监听函数
onThemeChange监听系统主题变化

举一个使用最多的生命周期钩子函数:onPageNotFound,如下:

设置一个404界面,当用户访问不存在的路径时,便会直接跳转到我们设置好的404界面用来提示用户当前页面不存在,如下:

页面生命周期

页面生命周期通常运行在组件页面上,相关的生命周期函数如下:

函数名说明
onlnit监听页面初始化
onLoad监听页面加载
onShow监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady监听页面初次渲染完成。如果渲染速度过快,会在页面进入动画前触发
onHide监听页面隐藏
onUnload监听页面卸载
onResize监听窗口尺寸变化
onPullDownRefresh监听用户下拉动作,一般用于下拉刷新
onReachBottom页面滚动到底部的事件(不是scroll-view滚到低),常用于下拉下一页数据
onTabltem Tap点击 tab 时触发
onShareAppMessage用户点击右上角分享
onPageScroll监听页面滚动
onNavigationBarButtonTap监听原生标题栏按钮点击事件
onBackPress监听页面返回
onNavigationBarSearchInputChanged监听原生标题栏搜索输入框输入内容变化事件
onNavigationBarSearchInputConfirmed监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。
onNavigationBarSearchInputClicked监听原生标题栏搜索输入框点击事件
onShareTimeline监听用户点击右上角转发到朋友圈
onAddToFavorites监听用户点击右上角收藏

举上面列表几个简单的例子来进行讲解,如下:

onLoad:监听页面加载。这里可以结合应用生命周期的onPageNotFound函数,进行404返回跳转

onPullDownRefresh:监听用户下拉动作,一般用于下拉刷新,这里需要设置一下pages.json文件

组件生命周期

uni-app 组件支持的生命周期,与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期:

函数名说明
beforeCreate在实例初始化之前被调用。
created在实例创建完成后被立即调用。
beforeMount在挂载开始之前被调用。
mounted挂载到实例上去之后调用。
beforeUpdate数据更新时调用,发生在虚拟 DOM 打补丁之前。
updated由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
beforeDestroy实例销毁之前调用。在这一步,实例仍然完全可用。
destroyedVue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

相关演示可参考vue生命周期讲解文章:Vue组件生命周期的三个阶段 。

相关文章:

uni-app--》uni-app的生命周期讲解

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败&#xf…...

fastp软件介绍

fastp软件介绍1、软件介绍2、重要参数解析2.1 全部参数2.2 使用示例2.3 重要参数详解(1)UMI去除(2)质量过滤(3)长度过滤(4)低复杂度过滤(5)adapter过滤&#…...

C++继承相关总结

文章目录前言1.继承的相关概念1.继承概念2.继承的相关语法3.基类和派生类对象赋值转换(赋值兼容规则)2.继承中的注意事项1.继承中的作用域2.派生类的默认成员函数1.构造函数与拷贝构造2.赋值重载与析构3.友元关系与静态成员变量3.多继承(菱形继承)1.虚拟继承2.虚拟继…...

【从零开始学习 UVM】8.2、Reporting Infrastructure —— uvm_printer 详解

文章目录 老派风格在UVM中如何完成uvm 风格Table printerTree printerLine printerprint使用print使用条件使用konb更改print配置示例在一个随机验证环境中,数据对象不断地由不同的组件生成和操作,如果能够显示对象的内容,则调试会变得更加容易。 老派风格 传统上,这是通…...

Mybatis、TKMybatis对比

文章目录1.Mybatis(1)配置文件(2)实体类(3)Mapper(4)mybatis-config.xml2.TKMybatis(1)配置文件(2)实体类(3)M…...

37了解高可用技术方案,如冗余、容灾

高可用性技术方案是指在系统设计和架构中采用一系列措施来确保系统在遇到各种故障和问题时仍能保持持续的可用性,避免因单点故障而导致系统宕机、数据丢失等问题。其中包括冗余和容灾技术。 冗余技术: 冗余技术是指通过增加系统组件的冗余来提高系统可靠…...

jdb调试问题集锦

https://bbs.kanxue.com/thread-210049.htm蓝铁 1 2017-8-25 19:40 4 楼 0 根据提示,可知,出错的地方是,android.app.ActivityThread.handleBindApplication(), 行4,400 查看源码可以发现,代码中指向的是app.onCreate() …...

要和文心一言来一把你画我猜吗?

想和文心一言来一把你画我猜吗? ChatGPT的爆火,让AI对话模型再次走入大众视野。大家在感叹ChatGPT的智能程度时,总会忍不住想:如果我们也有自己的AI对话模型就好了。在社会的压力下,国内的厂商和研究机构也纷纷做出尝试…...

delete[] p->elems和free(p->elems)有什么区别?

delete[]和free()都是释放内存的函数,但它们具有不同的使用方法和适用情况。 delete[] 通常用于释放C中动态分配的数组空间。在使用new[]运算符分配内存时,应使用delete[]运算符来释放分配的内存。delete[] 运算符会调用每个数组元素的析构函数&#xf…...

CAS问题

CAS🔎什么是CAS🔎伪代码解析🔎CAS是如何实现原子性的🔎CAS的应用🌻实现原子类🌻实现自旋锁🔎ABA问题🌻ABA问题可能引起的BUG🌻ABA问题的解决方案🔎结尾&#…...

网络编程socket(下)

目录 一、TCP网络程序 1.1 服务端初始化 1.1.1 创建套接字 1.1.2 服务端绑定 1.1.3 服务端监听 1.2 服务端启动 1.2.1 服务端获取连接 1.2.2 服务端处理请求 1.3 客户端初始化 1.4 客户端启动 1.4.1 发起连接 1.4.2 发起请求 1.5 网络测试 1.6 单执行流服务端的…...

华为OD机试题【打折买水果】用 C++ 编码,速通

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:打折买水果 题目 有 m m m…...

JSON 数据类型

JSON 数据类型 JSON 格式支持以下数据类型: 类型描述数字型(Number)JavaScript 中的双精度浮点型格式字符串型(String)双引号包裹的 Unicode 字符和反斜杠转义字符布尔型(Boolean)true 或 fal…...

Python函数简介

Python是一种高级编程语言,它的函数是其中一个非常重要的特性。在程序中,函数是一段被命名的代码块,它可以接受输入并且返回输出。本篇文章将介绍Python函数的基本概念、定义、调用和参数。 基本概念 在Python中,函数是由def关键…...

一文读懂 mysql 为什么要两阶段提交以及两阶段提交原理

文章目录 为什么要两阶段提交redo log与binlog两份日志之间的逻辑不一致,会出现什么问题?两阶段提交是怎么保证逻辑一致的呢?当 binlog 写完,redo log 还没 commit 前发生 crash,那崩溃恢复后 MySQL 如何处理?redo 与 binlog 的刷盘时机MySQL 的双 1 配置能否只用 redo l…...

启动Hadoop报错【Error: JAVA_HOME is not set and could not be found.】

当用了一下午从0安装上Hadoop兴奋的启动的时候! Error: JAVA_HOME is not set and could not be found. 他告诉我JAVA_HOME 没被找到? 我明明安装了java的,为什么找不到? java -version看了下发现是没问题的 解决: 后…...

《MySQL系列-InnoDB引擎35》索引与算法-B+树索引的使用

B树索引的使用 1 不同应用中B树索引的使用 在OLTP中,B树索引建立后,对该索引的使用应该只是通过该索引取得表中少部分的数据。这时建立B树索引才是有意义的,否则即使建立了,优化器也可能不选择使用索引。 在OLAP中,…...

【EHub_tx1_tx2_E100】不止科技NVISTAR ROC 300激光雷达Ubuntu18.04+ROS1ROS2 评测

介绍NVISTAR 的二维DTOF激光雷达 ROC 300在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS1驱动和ROS2的驱动,打开使用RVIZ 查看点云数据,本文的前提条件是你的TX1里已经安装了ROS1版本:Mel…...

C语言函数大全--d开头的函数

C语言函数大全 本篇介绍C语言函数大全–d开头的函数 1. detectgraph 1.1 函数说明 函数声明函数功能void detectgraph(int *graphdriver, int *graphmode);通过检测硬件确定图形驱动程序和模式 1.2 演示示例 #include <graphics.h> #include <stdlib.h> #incl…...

基于springboot实现福聚苑社区团购演示【项目源码】

基于springboot实现福聚苑社区团购演示开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#…...

LoadRunner Developer实战:如何在VSCode中集成性能测试(含Jenkins流水线配置)

LoadRunner Developer实战&#xff1a;VSCode集成与Jenkins流水线配置全指南 在DevOps实践中&#xff0c;性能测试左移已成为提升软件质量的关键策略。作为Micro Focus推出的开发者友好型工具&#xff0c;LoadRunner Developer让开发团队能在编码阶段就发现性能瓶颈。本文将手…...

BilibiliDown:基于Java的B站视频下载技术方案与实现解析

BilibiliDown&#xff1a;基于Java的B站视频下载技术方案与实现解析 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors…...

Cortex-M能否运行Linux?架构与系统需求解析

1. Cortex-M与Linux的兼容性解析作为一名嵌入式开发工程师&#xff0c;我经常被问到"Cortex-M能不能跑Linux"这个问题。要回答这个问题&#xff0c;我们需要从处理器架构和操作系统需求两个维度来分析。Cortex-M系列是ARM公司推出的微控制器内核&#xff0c;主要面向…...

新手福音:借助快马AI生成代码,轻松入门天天直播应用开发

作为一个刚入门前端开发的新手&#xff0c;想尝试直播类应用开发时&#xff0c;面对复杂的技术栈和交互逻辑常常无从下手。最近我发现用InsCode(快马)平台可以快速生成可运行的学习项目&#xff0c;就以"天天直播"为例记录下我的实践过程。 项目结构设计 整个直播页面…...

属于超级学习者的时代!中国学者用三种策略找到放射组学预测模型的最佳算法

源自风暴统计网&#xff1a;一键统计分析与绘图的网站由于可以使用大量数据进行训练&#xff0c;还能整合基因图谱、影像、脑电图、生理数据等多种数据源&#xff0c;因此机器学习&#xff08;ML&#xff09;算法特别适合个体化医疗。今天分享一篇基于集成机器学习&#xff0c;…...

golang如何实现零知识证明基础_golang零知识证明基础实现教程

Go 不内置零知识证明能力&#xff0c;需依赖第三方库&#xff1b;主流ZKP工具链绑定Rust/C/TS&#xff0c;Go生态缺乏生产级原生实现&#xff1b;crypto包仅提供基础原语&#xff0c;无法支撑ZKP所需多项式承诺、配对运算等高级密码操作。Go 本身不内置零知识证明&#xff08;Z…...

C++引用:高效编程的技巧

C引用的本质与特性 引用是已存在变量的别名&#xff0c;与变量共享同一内存地址。声明时必须初始化且不可更改绑定对象&#xff1a; int x 10; int& ref x; // ref成为x的别名 ref 20; // 修改x的值引用与指针的核心区别 初始化要求&#xff1a;引用必须声明时初始…...

Phi-3-mini-4k-instruct-gguf完整指南:模型原理、部署、调参、运维一体化

Phi-3-mini-4k-instruct-gguf完整指南&#xff1a;模型原理、部署、调参、运维一体化 1. 模型概述 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合处理问答、文本改写、摘要整理和简短创作等任务。相比完整版模型&#xff0c;…...

MarkEdit 文本编码处理技术深度解析

MarkEdit 文本编码处理技术深度解析 【免费下载链接】MarkEdit Just like TextEdit on Mac but dedicated to Markdown. 项目地址: https://gitcode.com/gh_mirrors/ma/MarkEdit MarkEdit 是一款专为 Markdown 设计的文本编辑器&#xff0c;如同 Mac 上的 TextEdit 但专…...

前端进阶 课程二十六、:Flex布局进阶与实战(复杂布局)

一、学习目标 掌握Flex布局嵌套规则,实现容器内多层Flex嵌套; 运用Flex完成头部+内容区+底部、卡片详情、响应式导航三大复杂布局; 解决Flex项目溢出、对齐失效、高度自适应等常见问题; 区分Flex与float布局,明确Flex的现代布局优势。 二、核心知识点+实战代码 1. Fl…...