页面、组件、应用、生命周期(微信小程序)
文章目录
- 页面生命周期函数
- 组件生命周期函数
- 应用(App)生命周期函数
- 页面与组件生命周期的执行顺序
- 注意事项
在微信小程序中,生命周期函数是指页面或组件在不同阶段会被自动调用的特定函数。这些函数可以帮助开发者在适当的时机完成特定的初始化、清理或交互逻辑。
页面生命周期函数
页面生命周期函数是作用于小程序中的页面,处理页面加载、显示、隐藏等事件。
| 函数名 | 描述 |
|---|---|
onLoad(options) | 页面加载时触发,参数为打开当前页面路径中的参数。 |
onShow() | 页面显示时触发,每次进入页面都会执行。 |
onReady() | 页面初次渲染完成时触发,仅执行一次。 |
onHide() | 页面被隐藏时触发,如跳转到其他页面或切入后台。 |
onUnload() | 页面卸载时触发,如关闭当前页面或返回上一页。 |
onPullDownRefresh() | 监听用户下拉刷新动作,需在 app.json 中开启 "enablePullDownRefresh"。 |
onReachBottom() | 监听页面触底事件,如用于加载更多数据。 |
onPageScroll() | 监听页面滚动,参数为滚动距离(单位 px)。 |
onShareAppMessage(options) | 用户点击右上角分享时触发,可自定义分享内容。 |
onShareTimeline() | 用户点击分享按钮分享到朋友圈时触发(需要设置 enableShareTimeline)。 |
onAddToFavorites() | 用户点击收藏时触发,需设置 enableAddToFavorites 为 true。 |
onResize() | 监听页面尺寸变化,如屏幕旋转(横竖屏切换)。 |
onTabItemTap(item) | 监听点击 tab 时触发,仅在 tab 页面有效。 |
组件生命周期函数
组件生命周期函数用于处理组件的创建、更新、销毁等阶段的事件。
| 函数名 | 描述 |
|---|---|
created() | 在组件实例刚刚被创建时触发。 |
attached() | 在组件实例进入页面节点树时触发。 |
ready() | 在组件布局完成后触发,可以操作 DOM 节点。 |
moved() | 在组件实例被移动到其他位置时触发。 |
detached() | 在组件实例被从页面节点树移除时触发。 |
error(error) | 当组件方法抛出错误时触发,参数为错误信息。 |
lifetimes.show() | 组件被展示时触发(支持页面级别的监听)。 |
lifetimes.hide() | 组件被隐藏时触发(支持页面级别的监听)。 |
lifetimes.resize() | 监听组件尺寸变化。 |
应用(App)生命周期函数
应用生命周期函数用于处理小程序的整体生命周期,主要是小程序的启动、切换前后台等。
| 函数名 | 描述 |
|---|---|
onLaunch(options) | 小程序初始化时触发,全局只触发一次。 |
onShow(options) | 小程序启动或从后台进入前台时触发。 |
onHide() | 小程序从前台进入后台时触发。 |
onError(error) | 小程序发生脚本错误或 API 调用失败时触发。 |
onUnhandledRejection(reason) | 未处理的 Promise 拒绝触发。 |
onPageNotFound(options) | 当页面不存在时触发,可进行页面跳转(最多触发一次)。 |
onThemeChange(theme) | 小程序主题发生变化时触发,参数为主题信息。 |
onUnhandledRejection(reason) | 未捕获的 Promise 错误触发,参数为错误原因。 |
页面与组件生命周期的执行顺序
- 页面首次加载时
App.onLaunch->App.onShow->Page.onLoad->Page.onShow->Page.onReady
- 页面切换
- 离开页面:
Page.onHide - 新页面加载:
Page.onLoad->Page.onShow->Page.onReady
- 离开页面:
- 页面卸载
Page.onUnload
- 小程序切后台
Page.onHide->App.onHide
- 小程序切回前台
App.onShow->Page.onShow
注意事项
-
onPullDownRefresh和onReachBottom- 需要在
app.json或page.json中配置相应的功能开关。 - 在数据加载完成后,需调用
wx.stopPullDownRefresh()停止刷新动画。
- 需要在
-
onShareAppMessage- 如果未定义该方法,分享时将无法自定义内容,显示默认的页面标题和链接。
-
onPageNotFound- 必须在
App的配置中设置"entryPagePath"否则可能不会触发。
- 必须在
-
组件生命周期
- 对于组件与页面交互,需要关注组件的
attached和detached阶段,以进行初始化和清理操作。
- 对于组件与页面交互,需要关注组件的
通过合理利用生命周期函数,可以更高效地管理小程序的状态和资源,提高开发体验和用户体验。

相关文章:
页面、组件、应用、生命周期(微信小程序)
文章目录 页面生命周期函数组件生命周期函数应用(App)生命周期函数页面与组件生命周期的执行顺序注意事项 在微信小程序中,生命周期函数是指页面或组件在不同阶段会被自动调用的特定函数。这些函数可以帮助开发者在适当的时机完成特定的初始化…...
书生第四期实训营进阶岛——L2G4000 InternVL 多模态模型部署微调实践
基础任务 体验InternVL 运行demo 效果如下: 使用XTuner对InternVL进行微调 运行demo 效果如下:...
国内 ChatGPT中文版镜像网站整理合集(2024/11/08)
一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画 ② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4,4o以及MJ绘画 1. 什么是镜像站 镜像站(Mirror Siteÿ…...
SpringBoot整合Liquibase对数据库管理和迁移
简介 Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的…...
太空旅游:科技能否让星辰大海变为现实?
内容概要 在这个快速变化的时代,太空旅游成为了一个让人热血沸腾的话题。想象一下,坐在一颗漂浮的太空舱里,手中端着饮料,眺望着无尽的星辰大海,简直就像科幻电影中的情节一样。不过,这不仅仅是一个空洞的…...
[JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决
目录 一. 多线程下使用ArrayList 1.1. 自行判断加锁 1.2 使用Collections.synchronizedList()套壳加锁 1.3 CopyOnWriteArrayList类 二. 总结 一. 多线程下使用ArrayList 多线程下使用ArrayList会涉及到线程安全问题, 例如: public static void main(String[] args) thro…...
Elasticsearch-linux环境部署
本文主要介绍linux下elasticsearch的部署。通过在一台linux服务器中分别对elasticsearch-6.7.2版本,elasticsearch-7.3.0版本来进行安装,记录在安装elasticsearch-7.3.0版本时出现的异常情况,以及elasticsearch-head的安装。 基础环境 本机已…...
LeetCode 每日一题 长度为 K 的子数组的能量值
长度为 K 的子数组的能量值 给你一个长度为 n 的整数数组 nums 和一个正整数 k 。 一个数组的 能量值 定义为: 如果 所有 元素都是依次 连续 且 上升 的,那么能量值为 最大 的元素。 否则为 -1 。 你需要求出 nums 中所有长度为 k 的 子数组 的能量值。 …...
人工智能——小白学习指南
知孤云出岫 目录 1. **智能评测系统**2. **个性化学习路径推荐**3. **虚拟学习助手**4. **学习行为分析**5. **数据驱动的教学决策**6. **自动化课程推荐**7. **数据隐私与安全保护** 人工智能知识点的总结和学习路线,以数据表格形式呈现,并附带在教育行…...
go 集成Gin Web开发框架
引入gin的依赖 下载并安装 gin go get -u github.com/gin-gonic/gin 将 gin 引入到代码中 import "github.com/gin-gonic/gin" 开始 package mainimport "github.com/gin-gonic/gin"func main() {r : gin.Default()r.GET("/ping", func(c …...
c++ 多态性
类的多态 多态概念入门 #include <iostream> using namespace std;/* 多态的前提: 拥有继承关系的类中有相同的函数(返回类型、函数名、形参列表) 多态解决的问题:1、派生类的对象被赋值给基类对象时2、派生类的对象初始化基类的引用时3、基类的指针指向派生…...
块存储、文件存储和对象存储详细介绍
块存储、文件存储和对象存储介绍 块存储:像跑车,因为它们都能提供快速的响应和高性能,适合需要即时数据访问的场景,比如数据库和虚拟化技术。 文件存储:像货车,因为它们都能承载大量货物(文件&…...
移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (9) - 编译现有的AWTK应用程序
AWTK 应用程序开发完成后,在配置文件中添加 harmonyos 的选项,通过create_project.py脚本即可生成 DevEco Studio的工程。 安装开发环境 DevEco Studio HarmonyOS 的开发工具。 Python 运行环境。 git 源码管理工具。 下载 awtk 和 awtk-harmonyos…...
ssm基于BS的仓库在线管理系统的设计与实现+vue
系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码看文章最下面 需要定制看文章最下面 目 录 第一章 绪论 1 1.1 研究背景 1 1.2 研究意义 1 1.3 研究内容 2 第二章 开发环境与技术3 …...
面试题:Spring(一)
1. Spring框架中bean是单例么? Service Scope("singleton") public class UserServiceImpl implements UserService { }singleton : bean在每个Spring IOC容器中只有一个实例。prototype:一个bean的定义可以有多个实例。 2. Spring框架中的…...
MySQ怎么使用语法介绍(详细)
一、什么是库结构 库结构的意思就是指数据库的结构。所以,理解“库结构”就要先理解“库”是什么。 在数据库的上下文中,库指的是一个数据库。简单来说,数据库(库)是用来存储和管理数据的容器。它不仅存储实际的数据…...
新能源汽车与公共充电桩布局
近年来,全球范围内对新能源汽车产业的推动力度不断增强,中国新能源汽车市场也呈现蓬勃发展的势头,在政策与市场的共同推动下,新能源汽车销量持续增长。然而,据中国充电联盟数据显示,充电基础设施建设滞后于新能源汽车数量增长的现状导致充电桩供需不平衡,公共充电桩服务空白区域…...
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
GIT三款经典可视化 由上文文档得出灵感写出此篇 这三个概念在 Git 操作中都是很常见的, 来逐个解析: 1. 当前分支 “当前分支”就是你目前正在工作的分支。你在进行任何代码修改、提交等操作时,都会应用到“当前分支”上。换句话说…...
【Git】如何在 Git 中高效合并分支:完整指南
目录 引言1. 切换到主分支1.1 切换分支命令1.2 相关命令1.3 切换分支示意图 2. 合并分支2.1 基本合并命令2.2 合并选项2.3 合并流程示意图 3. 解决冲突3.1 解决冲突的步骤3.2 相关命令3.3 解决冲突示意图 4. 本地更新分支4.1 拉取远程更改4.2 更新主分支4.3 拉取远程更新到本地…...
成都睿明智科技有限公司抖音电商服务效果如何?
在这个短视频风起云涌的时代,抖音电商以其独特的魅力,成为了众多商家竞相追逐的新蓝海。而在这片波澜壮阔的商海中,成都睿明智科技有限公司犹如一艘稳健的航船,引领着无数企业驶向成功的彼岸。今天,就让我们一起揭开成…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
