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

[uniapp生命周期]详细讲解uniapp中那些属于vue生命周期,那些属于uniapp独有的生命周期,以及这中间的区别 相关的内容和api 代码注释

目录

    • 1. Vue.js生命周期函数
    • 2.Vue生命周期函数代码
      • beforeCreate
      • created
      • beforeMount
      • mounted
      • beforeUpdate
      • updated
      • beforeDestroy
      • destroyed
      • $nextTick
      • $forceUpdate
      • $destroy
    • 3. UniApp独有的生命周期函数
      • onLaunch
      • onShow
      • onHide
      • onError
    • 4.总结

在UniApp中,除了Vue.js的生命周期函数外,还有一些UniApp独有的生命周期函数。下面是它们的详细解释及其区别:

1. Vue.js生命周期函数

  • beforeCreate:在实例初始化之后,数据观测和事件配置之前被调用。
  • created:实例已经创建完成之后被调用。在这一步,实例已完成数据观测、属性和方法的运算,同时也可以进行 DOM 操作。但是,挂载阶段还没开始,$el 属性目前不可见。
  • beforeMount:在挂载开始之前被调用。相关的渲染函数首次被调用。
  • mounted:el 被新创建的 vm.$ el 替换,并挂载到实例上去之后调用该钩子。如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 vm.$el 也在文档内。
  • beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。这里适合在更新之前访问现有 DOM,比如手动移除已添加的事件监听器。
  • updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。调用时,组件 DOM 已经更新,所以可以执行依赖于 DOM 的操作。
  • beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
  • destroyed:实例销毁之后调用。该钩子被调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

Uniapp是基于Vue.js的跨平台开发框架,因此其生命周期与Vue.js的生命周期类似。以下是uniapp中常用的生命周期函数和相关API的详细讲解和代码注释:

2.Vue生命周期函数代码

beforeCreate

在实例初始化之后,数据观测和事件配置之前被调用。

export default {beforeCreate() {console.log('beforeCreate')}
}

created

实例创建完成后被立即调用。

export default {created() {console.log('created')}
}

beforeMount

在挂载开始之前被调用:相关的 render 函数首次被调用。

export default {beforeMount() {console.log('beforeMount')}
}

mounted

实例挂载后调用,此时组件 DOM 已经渲染出来了。

export default {mounted() {console.log('mounted')}
}

beforeUpdate

数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。

export default {beforeUpdate() {console.log('beforeUpdate')}
}

updated

由于数据更改导致的虚拟 DOM 重新渲染和打补丁完成之后调用。

export default {updated() {console.log('updated')}
}

beforeDestroy

实例销毁之前调用。

export default {beforeDestroy() {console.log('beforeDestroy')}
}

destroyed

实例销毁后调用。

export default {destroyed() {console.log('destroyed')}
}

$nextTick

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

this.$nextTick(() => {// DOM 更新完成后执行的回调函数
})

$forceUpdate

迫使 Vue 实例重新渲染。

this.$forceUpdate()

$destroy

完全销毁一个实例。清理它与其他实例的连接,解绑它的全部指令及事件监听器。

this.$destroy()

3. UniApp独有的生命周期函数

onLaunch

  • onLaunch:当小程序初始化完成时,会触发 onLaunch(全局只触发一次)。参数中可以获取到小程序的启动参数,如路径、场景值等。

onShow

  • onShow:当小程序启动,或从后台进入前台显示,会触发 onShow。参数中可以获取到小程序的启动参数,如路径、场景值等。

onHide

  • onHide:当小程序从前台进入后台,会触发 onHide。

onError

  • onError:当小程序发生脚本错误或 API 调用失败时,会触发 onError 并带上错误信息。

这些生命周期函数的区别在于它们被触发的时机和作用范围不同。Vue.js的生命周期函数主要是针对组件的,而UniApp独有的生命周期函数是针对整个小程序的。其中,onLaunch和onShow是非常重要的生命周期函数,可以用来初始化一些全局变量或执行一些全局操作。

代码注释如下:

export default {beforeCreate() {// 在实例初始化之后,数据观测和事件配置之前被调用},created() {// 实例已经创建完成之后被调用},beforeMount() {// 在挂载开始之前被调用},mounted() {// el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子},beforeUpdate() {// 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前},updated() {// 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子},beforeDestroy() {// 实例销毁之前调用},destroyed() {// 实例销毁之后调用},onLaunch(options) {// 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)},onShow(options) {// 当小程序启动,或从后台进入前台显示,会触发 onShow},onHide() {// 当小程序从前台进入后台,会触发 onHide},onError(error) {// 当小程序发生脚本错误或 API 调用失败时,会触发 onError 并带上错误信息}
}

4.总结

Uniapp的生命周期说白了== >Vue的生命周期函数+uniapp自定义的生命周期函数
但是在开发中 大都是基于vue的组件思路 所以常用的还是 Vue的生命周期

相关文章:

[uniapp生命周期]详细讲解uniapp中那些属于vue生命周期,那些属于uniapp独有的生命周期,以及这中间的区别 相关的内容和api 代码注释

目录 1. Vue.js生命周期函数2.Vue生命周期函数代码beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed$nextTick$forceUpdate$destroy 3. UniApp独有的生命周期函数onLaunchonShowonHideonError 4.总结 在UniApp中,除了Vue.js的生命周…...

【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 状态压缩 记忆化搜索 1681. 最小不兼容性 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中,使得同一…...

JVM-类加载器 双亲委派机制

申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写&a…...

vue axios 请求后端无法传参问题

vue请求后端无法传参问题 问题描述处理过程总结 问题描述 在学习vue时,使用axios调用后端,发现无法把参数正确传到后端,现象如下: 使用vue发起请求,浏览器上已经有传参,但是后端没接收到对应的用户名密码&…...

打印最小公倍数

打印最小公倍数 题目描述: 输入2个整数m和n,计算m和n的最小公倍数,并打印出结果 测试1: 输入:18 24 输出:72 测试2: 输入:18 6 输出:18解法思路: 最小公倍数是指两个…...

[AIGC] Java 和 Kotlin 的区别

好的,我还是以“萌萌哒小码农”的身份继续回答您的问题。 Java 和 Kotlin 是两种不同的编程语言,它们有许多共同点,但也有一些重要的区别。以下是一些常见的 Java 和 Kotlin 的区别: 语法 Kotlin 的语法比 Java 简洁得多&#…...

蓝桥杯电子类单片机提升一——超声波测距

前言 单片机资源数据包_2023 一、超声波测距原理 二、超声波测距的应用 1.超声波的发射 2.单片机知识补充:定时器 3.超声波的接收与计时 4.距离的计算 1)定时器1为16位自动重载+1T11.0592MHz 2)定时器1为16位自动重载&am…...

前端架构: 脚手架开发流程中的难点梳理

脚手架的开发流程 1 )开发流程 创建 npm 项目创建脚手架入口文件,最上方添加: #!/usr/bin/env node 配置 package.json, 添加 bin 属性编写脚手架代码将脚手架发布到 npm 2 )使用流程 安装脚手架 npm install -g your-own-cli …...

django中配置使用websocket

Django 默认情况下并不支持 WebSocket,但你可以通过集成第三方库如 channels 来实现 WebSocket 功能。channels 是一个 Django 应用,它提供了对 WebSocket、HTTP2 和其他协议的支持。 下面是如何在 Django 项目中使用 WebSocket 的基本步骤:…...

Rust复合类型详解

在Rust中,复合类型是一种能够将多个值组合在一起的数据类型。本篇博客将介绍两种常见的复合类型:元组(Tuple)和数组(Array)。 Tuple(元组) 元组是Rust中的一种复合类型&#xff0c…...

学习 JavaScript 闭包

1. 前言 闭包是 JavaScript 中一种非常重要的概念,它允许函数访问其外部作用域中的变量,即使在函数被返回或者在其原始定义的作用域之外执行时仍然可以访问这些变量。 在讲解闭包之前我们得弄清楚下面的概念: 作用域链: JavaSc…...

VScode中配置 C/C++ 环境 | IT拯救者

文章目录 0 引言1. 下载编辑器VScode2. 下载编译器MinGW并解压3. 将MinGW添加至环境变量4. 配置VScode插件5. 运行代码6. 调整和优化7. 提示8. 例行格式条款9. 例行格式条款 0 引言 由于VScode毛毛张使用不习惯,因此配置教程记不住,不过毛毛张看到一篇不…...

基于Python实现Midjourney集成到(个人/公司)平台中

目前Midjourney没有对外开放Api,想体验他们的服务只能在discord中进入他们的频道进行体验或者把他们的机器人拉入自己创建的服务器中;而且现在免费的也用不了了,想使用就得订阅。本教程使用midjourney-api这个开源项目,搭建Midjou…...

蓝桥杯刷题--python-6

0最大距离 - 蓝桥云课 (lanqiao.cn) n=int(input()) nums=list(map(int,input().split()))max_=float(-inf) for i in range (n):for j in range (i+1,n):tmp=abs(i-j)+abs(nums[i]-nums[j])max_=max(tmp,max_) print(max_) 0最长递增 - 蓝桥云课 (lanqiao.cn) import os im…...

node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

文章目录 ⭐前言⭐ 功能设计与实现💖 node后端操作数据库实现增删改查💖 vue3前端实现增删改查⭐ 效果⭐ 总结⭐ 结束⭐结束⭐前言 大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:…...

【Android】使用Apktool反编译Apk文件

文章目录 1. 下载Apktool1.1 Apktool官网下载1.2 百度网盘下载 2. 安装Apktool3. 使用Apktool3.1 配置Java环境3.2 准备Apk文件3.3 反编译Apk文件3.3.1 解包Apk文件3.3.2 修改Apk文件3.3.3 打包Apk文件3.3.4 签名Apk文件 1. 下载Apktool 要使用Apktool,需要准备好 …...

(04)Hive的相关概念——order by 、sort by、distribute by 、cluster by

Hive中的排序通常涉及到order by 、sort by、distribute by 、cluster by 一、语法 selectcolumn1,column2, ... from table [where 条件] [group by column] [order by column] [cluster by column| [distribute by column] [sort by column] [limit [offset,] rows]; …...

Django模板(二)

标签if 标签在渲染过程中提供使用逻辑的方法,比如:if和for 标签被 {% 和 %} 包围,如下所示: 由于在模板中,没有办法通过代码缩进判断代码块,所以控制标签都需要有结束的标签 if判断标签{% if %} {% endif %} : # athlete_list 不为空 {% if athlete_list %}# 输出 ath…...

勒索病毒最新变种.faust勒索病毒来袭,如何恢复受感染的数据?

引言: 随着我们进入数字化时代,数据的重要性变得愈发显著,而网络安全威胁也日益增加。.faust勒索病毒是其中一种备受恶意分子钟爱的危险工具,它通过加密用户文件并勒索高额赎金来对个人和组织发起攻击。本文将深入探讨.faust勒索…...

python 人脸检测器

import cv2# 加载人脸检测器 关键文件 haarcascade_frontalface_default.xml face_cascade cv2.CascadeClassifier(haarcascade_frontalface_default.xml)# 读取图像 分析图片 ren4.png image cv2.imread(ren4.png) gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 进行人脸…...

机器学习与深度学习

什么是机器学习 机器学习是一门跨学科的学科,它致力于研究和开发让计算机能够模拟人类学习行为的技术和方法。机器学习涉及多个学科的知识,如概率论、统计学、逼近论、凸分析、算法复杂度理论等,这些学科为机器学习提供了理论基础和数学工具…...

算法训练营day27(补),贪心算法1

import "sort" //455. 分发饼干 func findContentChildren(g []int, s []int) int { sort.Ints(g) sort.Ints(s) // g代表胃口数组, s代表饼干数组 count : 0 // 统计数量 //饼干下标 index : len(s) - 1 // 胃口循环 for i : len(g) - 1; i > 0; i--…...

[office] excel2003限定单元格输入值范围教程 #微信#经验分享

excel2003限定单元格输入值范围教程 在Excel中录入数据前都会设置单元格的一些格式,其中会有限定单元格输入值范围的需求,或许有的朋友并不知道单元格该如何限定输入范围,如果不懂的朋友欢迎一起来学习研究。下面是小编带来的关于excel2003限…...

OLED显示红外遥控键码

基本原理 本遥控器的编码是NEC编码,为PWM(脉冲宽度调制)。 发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。 逻辑“0”是由0.56ms的38KHZ载波和0.560ms的无载波间隔组成;逻辑“1”是由0.56ms的38KHZ…...

LabVIEW智能温度监控系统

LabVIEW智能温度监控系统 介绍了一个基于LabVIEW的智能温度监控系统,实现对工业环境中温度的实时监控与调控。通过集成传感器技术和LabVIEW软件平台,系统能够自动检测环境温度,及时响应温度变化,并通过图形用户界面(GUI)为用户提…...

专业140+总分420+浙江大学842信号系统与数字电路考研经验电子信息与通信,真题,大纲,参考书。

今年考研已经结束,初试专业课842信号系统与数字电路140,总分420,很幸运实现了自己的目标,被浙大录取,这在高考是想都不敢想的学校,在考研时实现了,所以大家也要有信心,通过自己努力实…...

C语言学习day15:数组强化训练

题目一: 称体重:分别给10个值,来获得最大值 思路: 定义数组,给数组内赋10个值第一个下标的值与第二个下标的值进行比较定义max,将比较得来的较大的值赋值给max一直比较直到比较到最后一个下标&#xff0…...

缓存穿透、缓存击穿与缓存雪崩

缓存穿透、缓存击穿与缓存雪崩 1.本质区别 缓存穿透指的是数据库不存在数据,导致无法缓存,每次查询都查数据库,数据库压垮 缓存击穿指的是缓存键值对key过期了,key过期期间,大量请求访问,不经过缓存&…...

一周学会Django5 Python Web开发-项目配置settings.py文件-模版配置

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计17条视频,包括:2024版 Django5 Python we…...

CF1845 D. Rating System [思维题+数形结合]

传送门:CF [前题提要]:自己在做这道题的时候思路完全想错方向,导致怎么做都做不出来,看了题解之后感觉数形结合的思考方式挺好的(或者这种做法挺典的),故写篇题解记录一下 题目很简单,不再解释.先不考虑 k k k,想想是一种什么情况?很显然应该是跟下图一样是一个折线图的变化.…...

HeidiSQL安装配置(基于小皮面板(phpstudy))连接MySQL

下载资源 对于这款图形化工具,博主建议通过小皮面板(phpstudy)来下载即可,也是防止你下载到钓鱼软件,小皮面板(phpstudy)如果你不懂是什么,请看下面链接这篇博客 第二篇:…...

【蓝桥2013】错误票据

错误票据 题目描述 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的 ID 号。全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。 因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造成了某个…...

nvm对node版本进行管理及疑难解决,vue项目搭建与启动

一、nvm安装与node版本管理 nvm安装 1、nvm地址:https://github.com/coreybutler/nvm-windows/releases 2、无需配置安装包,nvm-setup-v1.1.10.zip 解压后双击nvm-setup.exe,选择安装路径,一路next即可 打开dos窗口输入nvm vers…...

Redisson分布式锁 原理 + 运用 记录

Redisson 分布式锁 简单入门 pom <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.6</version></dependency>配置类 package com.hmdp.config;import org.redisson.Redisson;…...

Spring Boot 笔记 021 项目部署

1.1 引入坐标&#xff0c;并双击package打包成jar包 1.2 在服务器上运行jar包 1.3 使用postman测试 2.1 运行配置 2.1.1 命令更改端口 java -jar big-event-1.0-SNAPSHOT.jar --server.port7777 2.1.2 环境变量更新&#xff08;略&#xff09; 2.1.3 外部配置文件&#xff0c…...

新技术革命开始了,Sora一出,所有的视频人、电影人都下岗

Sora一出&#xff0c;所有的视频人、电影人都下岗&#xff01; Sora直接用文本制作长达60秒的视频长镜头&#xff0c;也就是说&#xff0c;将来&#xff0c;只需要输入分镜脚本&#xff0c;电影就可以制作出来&#xff0c;不再需要几十人几百人声势浩大地去“拍”了&#xff0c…...

【FPGA开发】Modelsim和Vivado的使用

本篇文章包含的内容 一、FPGA工程文件结构二、Modelsim的使用三、Vivado的使用3.1 建立工程3.2 分析 RTL ANALYSIS3.2.1 .xdc约束&#xff08;Constraints&#xff09;文件的产生 3.3 综合 SYNTHESIS3.4 执行 IMPLEMENTATION3.5 烧录程序3.6 程序固化3.6.1 SPI约束3.6.2 .bin文…...

现代浏览器对 es模块 【esm】原生支持

现代浏览器对 ES&#xff08;ECMAScript&#xff09;模块的原生支持是指浏览器可以直接解析和执行 JavaScript 文件中的 ES 模块语法&#xff0c;无需额外的工具或转换。 具体来说&#xff0c;当浏览器遇到 import 和 export 关键字时&#xff0c;会将其识别为 ES 模块语法&…...

修改SpringBoot中默认依赖版本

例如SpringBoot2.7.2中ElasticSearch版本是7.17.4 我希望把它变成7.6.1...

网络安全最典型基础靶场-DVWA-本地搭建与初始化

写在前面&#xff1a; 之前也打过这个 DVWA 靶场&#xff0c;但是是在虚拟机环境下的一个小块分区靶场&#xff1b; 本篇博客主要介绍在本地搭建 DVWA 靶场以及靶场的初始化&#xff0c;后续会陆续更新通关教程。 由于我们是在本地搭建&#xff0c;则需要基于你已经装好 phpstu…...

算法-----高精度2(高精度乘法,高精度除法,高精度斐波那锲数列)

高精度乘法 对于高精度乘法来说似乎不像高精度加减法那样简单了&#xff0c;我们似乎得一个一个加了&#xff0c;因为我们都知道 abaaaaa…a(b个a)。如果真要这要的话那1e9*1e9不得超时啊&#xff0c;所以不能这样&#xff0c;我们还是得从乘法竖式入手 这样看似乎看不出来什…...

windows vs 自己编译源码 leveldb 然后使用自己编译的文件

1 准备源码文件 1.1 第一种方法 git下载源码 vs项目中git leveldb源码和git third_party googletest-CSDN博客 1.2 第二种方法 手动下载 然后把第三方的源码下载 复制到 third_party 对应的文件夹中 没有文件夹 third_party -> powershell mkdir third_party 2 编译lev…...

基于GPT一键完成数据分析全流程的AI Agent: Streamline Analyst

大型语言模型&#xff08;LLM&#xff09;的兴起不仅为获取知识和解决问题开辟了新的可能性&#xff0c;而且催生了一些新型智能系统&#xff0c;例如旨在辅助用户完成特定任务的AI Copilot以及旨在自动化和自主执行复杂任务的AI Agent&#xff0c;使得编程、创作等任务变得高效…...

C语言-----习题

1.通过这个例题&#xff0c;我们可以知道*p.a是无法打印99的&#xff0c;因为.的优先级比解引用*高&#xff1b; ​ struct S {int a;int b; }; int main() {struct S a, * p &a;//可以分为两部分理解//struct S a;//struct S *p &a;a.a 99;printf("%d\n"…...

Java学习笔记(五)

目录 一、控制结构 1.1 顺序控制 1.2 分支控制 &#xff08;一&#xff09;单分支 &#xff08;二&#xff09;双分支 &#xff08;三&#xff09;多分支 &#xff08;四&#xff09;嵌套分支 &#xff08;五&#xff09;switch分支 1.3 循环控制 &#xff08;一&…...

4.【Linux】进程控制(进程终止||进程等待||程序替换)

一.进程创建fork 见上篇文章 二.进程的终止 1.进程退出场景 1.代码运行完毕&#xff0c;结果正确&#xff0c;通过main函数退出码返回一般为0。 2.代码运行完毕&#xff0c;结果不正确&#xff0c;通过不同的退出码标识不同的错误原因。 3.代码异常终止&#xff08;信号&am…...

微服务设计:Spring Cloud 链路追踪概述

Spring Cloud 链路追踪是指在分布式系统中追踪请求路径的技术。它可以帮助开发者了解请求在各个微服务之间是如何流转的&#xff0c;以及每个微服务处理请求所花费的时间。链路追踪可以用于解决以下问题&#xff1a; 性能分析: 识别性能瓶颈&#xff0c;优化微服务性能。故障排…...

【MySQL/Redis】如何实现缓存一致

目录 不实用的方案 1. 先写 MySQL , 再写 Redis 2. 先写 Redis &#xff0c; 再写MySQL 3. 先删 Redis&#xff0c;再写 MySQL 实用的方案 1. 先删 Redis&#xff0c;再写 MySQL, 再删 Redis 2. 先写 MySQL , 再删 Redis 3. 先写MySQL&#xff0c;通过BinLog&#xff0…...

Socket.D 开源输传协议 v2.4.0 发布

Socket.D 协议 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说&#xff0c;“Socket.D 之于 Socket&#xff0c;尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完…...

单片机学习笔记---AT24C02数据存储

目录 AT24C02数据存储 准备工作 代码讲解 I2C.c 模拟起始位置的时序 模拟发送一个字节的时序 模拟接收应答的时序 模拟接收一个字节的时序 模拟发送应答的时序 模拟结束位置的时序 I2C.h AT24C02.c 字节写&#xff1a;在WORD ADDRESS&#xff08;字地址&#xff…...