微信小程序中的App、Page、Component的生命周期函数

2023-11-08

有点混乱的官方文档

一、什么是生命周期和生命周期函数?

字面意义上说,生命周期就是指一个对象自身的生老病死;

在程序运行上也可以这么理解,程序也是对象,也有“生老病死”;

程序自身从创建到销毁的过程中,运行到特定的阶段,会触发特定的函数,这些函数,我们就称之为生命周期函数。

二、生命周期函数有什么用?

每个生命周期函数触发时机的不同导致了他们的使用方式和能够起到的作用不大相同;

通常来讲,我们使用生命周期函数是为了页面/组件等在创建到销毁的过程中可以自动执行一些代码来达到我们想要的效果,比如页面数据初始化、清除定时器等等。

App 中的生命周期函数

  1. onLaunch()

    小程序初始化完成时触发,全局只触发一次。参数也可以使用 wx.getLaunchOptionsSync 获取。
    一般在这个生命周期函数中执行 全局数据 的初始化操作。

  2. onShow()

    小程序启动,或从后台进入前台显示时触发,可以触发多次。
    也可以使用 wx.onAppShow 绑定监听。

  3. onHide()

    小程序从前台进入后台时触发,可以触发多次。也可以使用 wx.onAppHide 绑定监听。

Page 中的生命周期函数

  1. onLoad(obj)

    页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。

    一般在这个生命周期函数中执行 当前页面中的data 的初始化操作和判断所需的全局状态(如用户登录状态)等。

    触发时机早于 onShow() 和 onReady()。

  2. onShow()

    页面显示/切入前台时触发,可触发多次,触发时机早于onReady()。

  3. onReady()

    页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
    注意:对界面内容进行设置的 API 如 wx.setNavigationBarTitle,请在onReady之后进行。

  4. onHide()

    页面隐藏/切入后台时触发。 如 wx.navigateTo 或底部 tab 切换到其他页面,小程序切入后台等,可触发多次。

  5. onUnload()

    页面卸载时触发。如 wx.redirectTowx.navigateBack 到其他页面时。

    一般在这个生命周期函数中执行清除定时器、closeSocket等操作。

Component中的生命周期函数

微信小程序的组件中的生命周期函数有以下六种,其中最重要的是 createdattacheddetached
 
在这里插入图片描述

  1. created()

    组件实例刚刚被创建好时, created 生命周期被触发,此时还不能调用 setData
    通常情况下,这个生命周期只应该用于给组件添加一些自定义属性字段。

  2. attached()

    在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。

  3. detached()

    在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。

    (页面节点树即组成页面的所有元素的集合。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序中的App、Page、Component的生命周期函数 的相关文章

  • 生成msf常用payload

    msf作为一款强大的漏洞检测工具 如何生成适用于msf的payload以及如何利用是使用msf的关键 今天就主要记录一下常用的payload以及如何使用 生成payload使用的工具是MSFVenom 下面看看他的帮助信息 在kali下可以
  • JAVA 8函数式编程(一) 高阶函数

    首先给大家分享一个巨牛巨牛的人工智能教程 是我无意中发现的 教程不仅零基础 通俗易懂 而且非常风趣幽默 还时不时有内涵段子 像看小说一样 哈哈 我正在学习中 觉得太牛了 所以分享给大家 点这里可以跳转到教程 函数式编程的核心在高阶函数与偏函
  • ​行业竞争格局已显,上市公司布局加速丨2021中国区块链产业发展报告

    目前 区块链作为数字经济革命中的重要支撑 正以新一代信息基础设施的姿态快速发展并渗透到我国经济的各个领域 对我国经济社会发展的支撑作用初步显现 但同时 我国区块链也面临核心技术亟待突破 融合应用尚不成熟 产业生态有待完善 监管治理仍待探索等
  • 一个非常完整的测试实习面试过程

    首先是投简历 我这次面试是在实习seng投的 有一点要注意 简历是为了拿到面试 可以稍加修饰 但切忽作假 这相当于给面试的你挖坑 我面试的公司首先是要进行在线笔试 有些公司有 有些公司没有 富途 下面是一些题目 我尽量把有印象的都写出来了
  • 微信小程序-图片宽高设置

    微信小程序中 有很做组件都是有默认宽高的 比如 image组件默认宽度320px 度240px 这些默认设置常常会对我们的页面布局造成影响

随机推荐

  • 【实验室学习】时钟分频器,2、3、4、8分频 verilog实现

    0引言 记录时钟分频器的Verilog代码编写 主要掌握分频器设计思路 1设计 2 3 4 8分频 2 4 8分频设计较为容易 2分频 设计一个1位的寄存器 当原时钟上升沿时取反即可 代码展示 timescale 1ns 1ps modul
  • 详解HTTP协议

    HTTP 协议 几乎是每个人上网用的第一个协议 同时也是很容易被人忽略的协议 根据TCP IP模型 网络分层分为四层 应用层 传输层 网络层 网络接口层 数据链路层 物理层 HTTP协议属于应用层的一种协议 http www baidu c
  • 深度学习中30个关于数据的问题

    1 下面的数据是线性可分的嘛 否 2 下面哪个是通用的模型逼近器 A Kernel SVM B Neural Networks C Boosted Decision Trees D All of the above D 以上所有都可以得到一
  • java生成三位随机数_java工具类(三)之生成若干位随机数

    java 生成若干位随机数的问题 在一次编程的过程中偶然碰到一个小问题 就是需要生成一个4位数的随机数 如果是一个不到4位大的数字 前面可以加0来显示 因为要求最后是一个4位的整数 不带小数点 当时就想到了几个办法 一 用Math rand
  • ADC0832的AD模数转换原理及编程

    作者简介 嵌入式领域优质创作者 博客专家 个人主页 咸鱼弟 系列专栏 单片机设计专栏 目录 一 描述 二 模数转换原理 三 模数转换的过程 四 八位串行A D转换器ADC0832简介 五 ADC0832特点 六 芯片接口说明 七 ADC08
  • TongWeb及应用系统安全加固

    前言 本文档主要面向运维人员说明常见的TongWeb6 TongWeb7安全加固的配置方法 TongWeb配置 一 首先建议TongWeb升级到最新版本 早期版本存在一些代码级安全漏洞 无法通过配置解决 截止2021年4月15日TongWe
  • codeblocks安装后出现问题的可能解决办法

    昨天在写cf的时候遇到了一个问题 因为办公室这台电脑我是刚用 没有装过codeblocks之前 在用到花括号构造的时候报错 如图 不能直接用花括号了 这我能忍 按照以往的经验来说 是compiler出现了问题 于是设置了一下 看起来好像对了
  • msvcr120.dll丢失的解决方法,win10系统dll报错解决方法

    今天 我将和大家分享一个在win10系统中经常遇到的问题 msvcr120 dll丢失 相信很多朋友在使用电脑的过程中都会遇到这个问题 那么如何解决呢 接下来 就让我为大家详细讲解一下解决方法 首先 我们来了解一下msvcr120 dll文
  • Kazantzis-Kravaris-Luenberger ( KKL )非线性观测器

    The formulation of the observer design problem is realized via a system of singular first order linear PDEs and a rather
  • 【Python搞搞轻量Blog】第二发 Flask入门(2)

    上一篇文章 Flask入门 中创建了一个非常简单的Web应用 但从最简单中又稍微深入的说了一下Flask 基于Werkzeug 使用模板 利用HTML 如何快速利用写好的HTML呢 第一步 在和主应用的同级目录下 创建一个名为 templa
  • [算法]PRML学习笔记1.2.6贝叶斯曲线拟合(Bayesian curve fitting)

    参考文献 Pattern Recognition and Machine Learning Published by Springer January 2006 https www microsoft com en us research
  • 【Vue 学习】修改页面默认的标题

    修改页面默认的标题 一般是在 public index html 里面进行设置网页标题 如下 Vue 的脚手架使用了读取配置文件的方式来设置网页标题 如下 配置文件的内容如下 总结 直接修改 public index html 文件 修改配
  • FPN(特征金字塔)图解

    FPN 看了mask RCNN的源代码 其中用到fpn 根据源代码画了个图 当然FPN重要的是它的思想 有一些超参数可以根据自己的框架进行调整
  • [HFSS]Floquet port激励及主从边界设置(实例)

    Floquet port激励及主从边界设置 1 Floquet port简介 2 基本模型建立 3 主从边界设置 4 wave port 设置 5 floquet port 设置 6 Analysis setup 7 验证 仿真 8 结果演
  • Python标准库、模块、包的区别

    文章目录 模块 包 标准库 第三方库 自定义模块 模块 模块可定义为一个包含python定义和语句的 py文件 模块中包含python代码以及python函数 类或python变量 一个模块可以被其他 py文件导入使用 也可以单独作为脚本文
  • 3.3 Git 分支 - 分支管理

    3 3 Git 分支 分支管理 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 23 初稿 目录 文章目录 3 3 Git 分支 分支管理 版本说明 目录 分支管理 分支管理 现在已经创建 合并 删除了一些分支 让我们看看
  • 51单片机的几种中断的用法

    1 外部中断0 外部中断0实验 实现现象 下载程序后按下K3按键可以对D1小灯状态取反 注意事项 无 include reg52 h 此文件中定义了单片机的一些特殊功能寄存器 typed
  • gitlab可以访问,但git clone连接超时不能下载

    因此 我们可以把 http wozhendetainanle map 地址后面加上 git后缀 更改为 http wozhendetainanle map git 此时使用就可以下载了
  • 关于C#监视剪贴板信息

    1 常规方法 在C 中 有一个常规检测剪贴板的方法 用的是 System Windows Forms Clipboard 使用起来很简单 代码如下
  • 微信小程序中的App、Page、Component的生命周期函数

    有点混乱的官方文档 一 什么是生命周期和生命周期函数 字面意义上说 生命周期就是指一个对象自身的生老病死 在程序运行上也可以这么理解 程序也是对象 也有 生老病死 程序自身从创建到销毁的过程中 运行到特定的阶段 会触发特定的函数 这些函数