小程序开发.uniapp.生命周期

简介: 小程序开发.uniapp.生命周期

小程序开发.uniapp.生命周期


1. 概述

uniapp 生命周期是以 小程序生命周期 为基础实现的,分为 应用生命周期页面生命周期组件生命周期。 其中 组件生命周期 就是 vue生命周期

u n i a p p 生命周期 { 应用生命周期; 页面生命周期; 组件生命周期。 = > 即 v u e 生命周期 uniapp 生命周期 \begin{cases} 应用生命周期;\\ 页面生命周期;\\ 组件生命周期。 => 即 vue生命周期 \end{cases}uniapp生命周期应用生命周期;页面生命周期;组件生命周期。=>vue生命周期

2. 应用生命周期

函数 描述 说明
onLaunch 当 uniapp 初始化完成时发生调用 全局只会触发一次
onShow 当 uniapp 启动或从后台进入前台时发生调用 即用于监听用户进入小程序
onHide 当 uniapp从前台进入后台时发生调用 即用于监听用户离开小程序
onError 当 uniapp 报错时被触发 -
onUniNViewMessage 对 nvue 页面发生的数据进行监听 -
onUnhandledRejection 对未处理的 Promise 拒绝事件进行监听 -
onPageNotFound 页面不存在监听函数 -
onThemeChange 监听系统主题的变化 -

3. 页面生命周期

函数 描述 说明 使用平台
onLoad 监听页面加载,其参数为上一个页面传递的数据,参数类型为 object 主要是用于页面传参。
onShow 监听页面显示。 页面每次出现在屏幕上都触发,包括从下级页面返回当前页面。
onReady 监听页面初次渲染完成。 如果页面渲染速度快,会在页面进入动画前触发。
onHide 监听页面隐藏。 -
onUnload 监听页面卸载。 -
onResize 监听窗口尺寸的变化。 - 微信小程序、App
onPullDownRefresh 监听用户下拉动作。 -
onReachBottom 监听页面上拉触底事件。 多用于上拉加载更多数据。
onTabItemTab 点击 TabBar 时触发,参数类型为 object - 微信小程序、百度小程序、H5、App自定义组件
onShareAppMessage 用户点击右上角分析时触发 可以用于在分享时设置分析标题、路径等
onShareTimeline 用户点击右上角转发到朋友圈时触发 - 微信小程序v2.8.1+
onAddToFavorites 用户点击右上角收藏时触发 - 微信小程序v2.8.1+
onPageScroll 监听页面滚动,参数为 object类型 - 微信小程序、支付宝小程序、字节小程序、百度小程序
onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为object类型 - H5、App。 1.6.0
onNavigationBarSearchInputChanged 监听原生标题栏搜索输入框输入内容变化事件 - H5、App 。1.6.0
onNavigationBarSearchInputConfirmed 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的 “搜索”按钮时触发 H5、App 。
onNavigationBarSearchInputClicked 监听原生标题栏搜索输入框点击事件 - H5、App 。1.6.0
onBackPress 监听用户点击右上角收藏 - 微信小程序v2.8.1+

4. 组件生命周期

uniapp 的组件生命周期和 Vue 标准组件生命周期相同。在 当前版本的 uniapp 中,你既可以选择使用 vue2 进行开发,也可以使用 vue3 进行开发。有关 vue2 和 vue3 生命周期的详细讲解和比较说明,请参考博文《VUE实例及其生命周期解析(vue2 与 vue3 比较)》

4.1 在 uniapp 中建立 vue2 和 vue3项目的方式

打开Hbuilder软件,依次点击文件=》新建=》项目

可以看到弹出如图所示对话框:

你可以通过选择 Vue版本选择 中的选项来指定初始化一个 Vue2 或者 Vue3项目。其中选项 2 表示 vue2,选项 3 表示 vue3.

4.2 Vue 2 生命周期介绍

在Vue2中,这些时间关键点分别为 CreateMountUpdateDestroy。这里要指出的是,不论是创建、挂载,还是更新、销毁,都是需要时间的,也就是他们都是一个时间段。由于这些过程都是Vue框架为我们完成的,也不需要我们进行处理,因此我们完全可以将这几个过程认作时间点。具体而言,这四个点的功能和特点如下:

  • Create: Vue实例创建
  • Mount: Vue实例挂载
  • Update: Vue实例数据更新
  • Destroy: Vue实例销毁

还有一些特殊的生命周期钩子,说他们特殊是因为他们用于特定的场景。如activateddeactivatederrorCaptured。这一部分将在 后续 讲述。

Vue2生命周期函数 描述
beforeCreate 在实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用。
created 在实例创建完成后被立即同步调用。
beforeMount 在挂载开始之前被调用
相关的 render 函数首次被调用。
mounted 实例被挂载后调用
这时 el 被新创建的 vm.$el 替换了。
beforeUpdate 数据更新时被调用,发生在虚拟DOM达不到之前。
updated 在数据更改导致的虚拟 DOM 重新渲染和更新完毕之后被调用。
beforeDestroy 实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed 实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

4.3 Vue 3 生命周期介绍

Vue3生命周期选项 描述 Vue3 生命周期钩子 描述
beforeCreate 在组件实例初始化完成之后立即调用 不需要 -
created 在组件实例处理完所有与状态相关的选项后调用 不需要 -
beforeMount 在组件被挂载之前调用 onBeforeMount() 注册一个钩子,在组件被挂载之前被调用
mounted 在组件被挂载之后调用 onMounted() 注册一个回调函数,在组件挂载完成后执行
beforeUpdate 在组件即将因为一个响应式状态变更而更新其 DOM 树之前调用 onBeforeUpdate() 注册一个钩子,在组件即将因为响应式状态变更而更新其 DOM 树之前调用
updated 在组件即将因为一个响应式状态变更而更新其 DOM 树之后调用 onUpdated() 注册一个回调函数,在组件因为响应式状态变更而更新其 DOM 树之后调用
beforeUnmount 在一个组件实例被卸载之前调用 onBeforeUnmount() 注册一个钩子,在组件实例被卸载之前调用
unmounted 在一个组件实例被卸载之后调用 onUnmounted() 注册一个回调函数,在组件实例被卸载之后调用
目录
相关文章
|
1月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
451 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
22天前
|
JavaScript 小程序 API
UniApp X:鸿蒙原生开发的机会与DCloud的崛起之路·优雅草卓伊凡
UniApp X:鸿蒙原生开发的机会与DCloud的崛起之路·优雅草卓伊凡
80 12
UniApp X:鸿蒙原生开发的机会与DCloud的崛起之路·优雅草卓伊凡
|
3月前
|
API 开发者 Windows
uniapp 极速上手鸿蒙开发
uniapp 自版本 `4.28.2024092502` 起支持鸿蒙应用开发,现版本 `4.36.2024112817` 同时支持鸿蒙应用和元服务开发。本文介绍使用 HBuilderX 4.24+ 和 DevEco Studio 进行环境配置、项目创建及运行的详细步骤,涵盖从 AGC 平台新建项目、配置证书到最终运行项目的全流程,帮助开发者快速上手鸿蒙开发。注意:HBuilderX 4.31+ 构建的鸿蒙运行包不支持 x86_64 平台,需使用真机调试。
400 85
uniapp 极速上手鸿蒙开发
|
3月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
187 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
1月前
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
167 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
2月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
195 12
|
2月前
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
2月前
|
人工智能 开发框架 小程序
工会成立100周年纪念,开发职工健身AI运动小程序、APP方案推荐
为庆祝中华全国总工会成立100周年,特推出基于AI技术的智能健身系统,以小程序和APP形式呈现,助力职工健康生活。方案包括:1) 小程序插件,支持多种运动识别,开箱即用;2) APP插件,提供更高精度的运动检测;3) 成熟的「AI乐运动」系统,支持赛事活动管理。这些方案满足不同需求,推动全民健身体验升级,彰显工会对职工健康的关怀。
|
3月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
1230 11
技术小白如何利用DeepSeek半小时开发微信小程序?
|
2月前
|
人工智能 小程序 NoSQL
【一步步开发AI运动小程序】二十一、如何将AI运动项目配置持久化到后端?
本文介绍基于云智「Ai运动识别引擎」的运动配置持久化方案,旨在优化小程序或Uni APP中AI运动识别能力。通过将运动检测参数(如`Key`、`Name`、`TickMode`、`rules`或`samples`)持久化到后端,可避免因频繁调整运动参数而重新发布应用,提升用户体验。持久化数据结构支持规则和姿态样本存储,适用于关系数据库、文件或文档数据库(如MongoDB)。此外,云智还提供运动自动适配工具及「AI乐运动」产品,助力快速实现AI体育、全民健身等场景。

热门文章

最新文章