uniapp生命周期

uniapp生命周期包括应用生命周期、页面生命周期和组件生命周期;

1、应用生命周期

app.vue/uvue是uni-app的朱组件。所有页面都是在app.vue下进行切换,是应用入口文件。但app.vue本身不是页面,这里补鞥编写视图元素,也就没有。
这个文件的作用:监听应用生命周期、配置全局样式、配置全局的存储globalData;
应用生命周期仅可在app.vue中监听,在页面监听无效;
在这里插入图片描述
官网参考:应用生命周期详解

//app.vue页面
<script>// 只能在App.vue里监听应用的生命周期export default {onLaunch: function(options) {console.log('App Launch')console.log('应用启动路径:', options.path)},onShow: function(options) {console.log('App Show')console.log('应用启动路径:', options.path)},onHide: function() {console.log('App Hide')}}
</script>

全局存储globalData

//app.vue页面
<script>// 只能在App.vue里监听应用的生命周期export default {globalData: {  text: '测试',selectedColor:'#1281c1'},onLaunch: function(options) {this.globalData = '测试2';},onShow: function(options) {getApp().globalData.text = 'test';}}
</script>

js中设置方式:getApp().globalData.text = ‘test’;
在应用onLaunch时,getApp对象还未获取,暂时可以使用this.globalData获取globalData;
如果需要把globalData的数据绑定到页面上,可在页面的onShow页面生命周期里进行变量重赋值;

//index.vue页面
<template><view class="container"></view>
</template>
<script>
export default {data(){return {selectedColor: getApp().globalData.selectedColor}},onShow(){getApp().globalData.text = 'test';},
}
</script>
<style lang="scss" scoped>
</style>

全局样式

<style>/* #ifndef APP-PLUS-NVUE */@import './common/uni.css';/* #endif*/
</style>

2、页面生命周期

函数名说明
onInit监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad
onLoad监听页面加载,该钩子被调用时,响应式数据、计算属性、方法、侦听器、props、slots 已设置完成,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参)
onShow监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady监听页面初次渲染完成,此时组件已挂载完成,DOM 树($el)已可用,注意如果渲染速度快,会在页面进入动画完成前触发
onHide监听页面隐藏
onUnload监听页面卸载
onResize监听窗口尺寸变化
onPullDownRefresh监听用户下拉动作,一般用于下拉刷新
onReachBottom页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项
onTabItemTap点击 tab 时触发,参数为Object,具体见下方注意事项
onShareAppMessage用户点击右上角分享
onPageScroll监听页面滚动,参数为Object
onNavigationBarButtonTap监听原生标题栏按钮点击事件,参数为Object
onBackPress监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack;
onNavigationBarSearchInputChanged监听原生标题栏搜索输入框输入内容变化事件
onNavigationBarSearchInputConfirmed监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。
onNavigationBarSearchInputClicked监听原生标题栏搜索输入框点击事件(pages.json 中的 searchInput 配置 disabled 为 true 时才会触发)
onShareTimeline监听用户点击右上角转发到朋友圈
onAddToFavorites监听用户点击右上角收藏

页面加载顺序

在这里插入图片描述

注意事项

  1. 可接收上个页面传参的声明周期:onInit、onload,经常使用的为onload
  2. A页面使用navigateTo()页面跳转到B页面,A页面会触发onHide生命周期,B页面触发onShow;B页面返回会触发A页面onShow,B页面onUnload;(这是一个会重复触发的事件)
  3. A页面使用redirectTo()跳转时,A页面会触发onUnload(页面生命周期)、beforeDestory(组件生命周期)、destoryed(组件生命周期),B页面触发onshow;
  4. onInit仅百度小程序基础库3.260以上支持;其他版本或平台可使用onload兼容。

navigateTo()保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面
redirectTo(OBJECT)关闭当前页面,跳转到应用内的某个页面;

onbackpress使用场景参考
官网详情

3、组件生命周期

uniapp的组件生命周期与vue标准组件的生命周期相同;
在这里插入图片描述

4、生命周期的执行顺序

app.vue + 单个页面

//app.vue页面
<script>export default {onLaunch: function(options) {console.log('App onLaunch')},onShow: function(options) {console.log('App onShow')}}
</script>
//pages文件中index.vue页面
<template><view class="container"></view>
</template>
<script>
export default {onLoad() {console.log('首页onLoad');},onShow() {console.log('首页onshow');},onHide() {console.log('首页onhide');},beforeCreate() {console.log('首页beforeCreate');},created() {console.log('首页created');},beforeMount() {console.log('首页beforeMount');},mounted() {console.log('首页mounted');},onReady() {console.log('首页onReady');},onUnload() {console.log('首页onUnload');},data(){return {}}
}
</script>
<style lang="scss" scoped>
</style>
//执行顺序
App onLaunch
App onShow
首页beforeCreate
首页onLoad
首页onshow
首页created
首页beforeMount
首页onReady
首页mounted

包含组件的页面

//pages文件中index.vue页面
<template><view class="container"><uni-badge class="uni-badge-left-margin" text="uni组件" />......</view>
</template>
<script>
export default {data(){return {}}
}
</script>
<style lang="scss" scoped>
</style>
//执行顺序
首页beforeCreate
首页onLoad
首页onshow
首页created
首页beforeMount
组件beforeCreate
组件created
组件beforeMount组件2 beforeCreate 》 组件2 created 》 组件2 beforeMount组件3 beforeCreate 》 组件3 created 》 组件3 beforeMount
组件mounted
组件2 mounted
组件3 mounted
首页onReady
首页mounted

一般使用场景

  1. page onload(接收页面传参)
  2. page mounted(配合后端接口获取数据)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/179351.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Recommender System复习(考试向)

Recommender System Review OverviewCollaborative Filtering基于用户的CF&#xff08;User CF&#xff09;基于物品的CF&#xff08;Item CF&#xff09;Similarity CalculationBias in CF Evaluation of Recommender SystemFactorization MachinesLatent factor modelLFM算法…

Day 5 登录页及路由 (三) 基于axios的API调用

系列文章目录 本系列记录一下通过Abp搭建后端&#xff0c;VueElement UI Plus搭建前端&#xff0c;实现一个小型项目的过程。 Day 1 Vue 页面框架Day 2 Abp框架下&#xff0c;MySQL数据迁移时&#xff0c;添加表和字段注释Day 3 登录页以及路由 (一&#xff09;Day 4 登录页以…

为什么树莓派安装Ubuntu的时候无法通过有线(网线)连网

这个东西从软件角度有很多解释&#xff0c;但是我这里遇到的情况是&#xff1a; 因为一个标注2A但是实际电流虚标的充电头浪费了我2天的时间。 也即是说&#xff1a;如果你的树莓派无法通过网线联网&#xff0c;很有可能是因为供电不足。因为一个新的树莓派一般不会有故障&am…

XUbuntu22.04之解决桌面突然放大,屏幕跟着鼠标移动问题(一百九十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

瑞禧生物分享纳米粉体~二硫化钼粉体 MoS2 纯度:99% 纳米二硫化钼(MoS2)

二硫化钼粉体 名称&#xff1a;二硫化钼粉体 纯度&#xff1a;99% 外观&#xff1a;粉末 纳米二硫化钼(MoS2)粉体硫化钼粉体 二硫化铝化学性质稳定、热稳定性好 、摩擦系数低 、润滑作用优 良且在较为苛 刻的工作环境下能保持 良好的摩擦性能因此二硫化铝被广泛应用于固体润…

拓扑排序--C++实现

1. 定义 前置知识 DAG: Directed Acyclic Graph 有向无环图拓扑序&#xff1a; 像先修课程一样&#xff0c;即任意课程的前置课程都在其前面。 举个例子 在这个图中&#xff0c;1234或者1324是拓扑序。而其他的序列不是&#xff0c;即在一个节点出现之前他的所有祖先节点需…

OSPF复习(2)

目录 一、LSA的头部 二、6种类型的LSA&#xff08;课堂演示&#xff09; 1、type1-LSA&#xff1a;----重要且复杂 2、type2-LSA&#xff1a; 3、type3-LSA&#xff1a; 4、type4-LSA&#xff1a; 5、type5-LSA&#xff1a; 6、type7-LSA&#xff1a; 三、OSPF的网络类…

CSS3媒体查询与页面自适应

2017年9月&#xff0c;W3C发布媒体查询(Media Query Level 4)候选推荐标准规范&#xff0c;它扩展了已经发布的媒体查询的功能。该规范用于CSS的media规则&#xff0c;可以为文档设定特定条件的样式&#xff0c;也可以用于HTML、JavaScript等语言。 1、媒体查询基础 媒体查询…

windows docker desktop 更换镜像 加速

最近 docker hub 访问不了; 经过研究 可以通过添加 代理镜像网址 添加代理服务器的方式 实现完美访问 1添加镜像网站 修改成国内镜像地址就能享受到飞一般的速度&#xff0c;但有一个问题&#xff0c;部分站点镜像不全或者镜像比较老&#xff0c;建议使用多个镜像站。 https…

供应商等级:一级、二级和三级供应商之间有什么区别

作为一名专业采购人员&#xff0c;你知道拥有一个可靠且具有成本效益的供应链有多么重要。确保供应链顺利运行的方法之一就是利用供应商分级。 什么是供应商分级&#xff1f; 供应商分级是根据供应商的绩效和对企业的重要性&#xff0c;对其进行分类的做法。 因此&#xff0c…

计算机毕业设计选题推荐-超市售货微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

有方N58 HTTP POST 请求连接 TDengine

串口调试软件&#xff1a;格西调试精灵 第一步先注册网络获取IP地址 建立PPP连接 ATXIIC1\r PPP链路建立成功&#xff0c;查询IP地址 ATXIIC?\r 设置网络APN ATCREG?\r 运行结果&#xff0c;红线处是获…

深度学习数据集大合集—疾病、植物、汽车等

最近又收集了一大批深度学习数据集&#xff0c;今天分享给大家&#xff01;废话不多说&#xff0c;直接上数据&#xff01; 1、招聘欺诈数据集 招聘欺诈数据集&#xff1a;共收集了 200,000 条数据&#xff0c;来自三个网站。 该数据集共收集了 200.000 条数据&#xff0c;分别…

智慧渔业养殖远程监控解决方案

智慧渔业养殖远程监控解决方案 项目背景 影响水产养殖环境的关键参数就是水温、光照、溶氧&#xff0c;氨氮&#xff0c;硫化物、亚硝酸盐等&#xff0c;但这些关键因素即看不见又摸不着很难准确把握。现有的水产管理是以养殖经验为指导&#xff0c;也就是一种普遍的养殖经验…

MySQL 分组后统计 TopN 思路优化

一、表信息 表结构如下&#xff1a; CREATE TABLE score (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,score int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT1746687 DEFAULT CHARSETutf8;使用存储过程生成十万条测试数据&am…

【深度学习】pytorch——Tensor(张量)详解

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ pytorch——Tensor 简介创建Tensortorch.Tensor( )和torch.tensor( )的区别torch.Tensor( )torch.tensor( ) tensor可以是一个数&#xff08;标量&#xff09;、一维数组&#xff08;向量&#xff09;、二维数组&…

2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消

2023-macOS下安装anaconda&#xff0c;终端自动会出现(base)字样&#xff0c;如何取消 安装后&#xff0c;我们再打开终端&#xff0c;就会自动出现了&#xff08;base&#xff09; 就会出现这样子的&#xff0c;让人头大&#xff0c; 所以我们要解决它 具体原因是 安装了anac…

DDoS类型攻击对企业造成的危害

超级科技实验室的一项研究发现&#xff0c;每十家企业中&#xff0c;有四家(39%)企业没有做好准备应对DDoS攻击&#xff0c;保护自身安全。且不了解应对这类攻击最有效的保护手段是什么。 由于缺乏相关安全知识和保护&#xff0c;使得企业面临巨大的风险。 当黑客发动DDoS攻击…

Spring Boot:构建下一代Java应用的利器

文章目录 什么是Spring Boot&#xff1f;Spring Boot的主要特性1. 自动配置2. 独立性3. 微服务支持4. 生态系统5. Spring生态系统集成 Spring Boot的优势1. 提高开发效率2. 减少样板代码3. 更好的部署和管理4. 多种部署选项5. 微服务支持 如何开始使用Spring Boot1. 安装Spring…