小程序组件的生命周期

news/2024/7/20 2:36:05 标签: 前端, 小程序, 组件

组件生命周期

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。
其中,最重要的生命周期是 created attached detached ,包含一个组件实例生命流程的最主要时间点。
         ·组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data 。 此时还不能调用 setData 。 通常情况下,这个生命周期只应该用于给组件 this 添加一些自定义属性字段。
组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
         ·在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。
微信官方文档地址:组件生命周期 | 微信开放文档
代码示例:

Component({
  lifetimes: {
    attached: function() {
      // 在组件实例进入页面节点树时执行
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
  attached: function() {
    // 在组件实例进入页面节点树时执行
  },
  detached: function() {
    // 在组件实例被从页面节点树移除时执行
  },
  // ...
})

1、created:在组件实例刚刚被创建时执行,在这个阶段由于组件刚刚被创建,this.setData这些函数是不会生效的,在这个生命周期内,我们只可以获取一些基本的值以及数据上的做处理,跟页面渲染相关的内容不能在这个生命周期实现;

2、attached:组件初始化完毕并且挂载到页面上之后触发,如果熟悉vue的话,和vue的mounted比较像,这个阶段才是我们一般做初始化的阶段,并且在这个阶段data也被初始化为组件的值;

3、detached:在组件实例被从页面节点树移除时执行,简单的说,就是这个 **组件被销毁 **的时候会被执行,这个使用的还是非常频繁的

4、ready:在组件在视图层布局完成后执行,简单的说,就是组件被挂载到页面上,并且页面渲染完毕后触发;这个生命周期我们一般处理一些跟视图操作相关的内容;

5、moved:在组件实例被移动到节点树另一个位置时执行

组件所在页面的生命周期">组件所在页面的生命周期

还有一些特殊的生命周期,它们并非与组件有很强的关联,但有时组件需要获知,以便组件内部处理。这样的生命周期称为“组件所在页面的生命周期”,在 pageLifetimes 定义段中定义。其中可用的生命周期包括:

 

注意:自定义 tabBar 的 pageLifetime 不会触发。

代码示例:

Component({
  pageLifetimes: {
    show: function() {
      // 页面被展示
    },
    hide: function() {
      // 页面被隐藏
    },
    resize: function(size) {
      // 页面尺寸变化
    }
  }
})

整体周期

(1)打开页面

首先,前一个页面隐藏,在加载下一个页面之前,需要先初始化新页面的组件。页面首次渲染之后,会触发组件的ready,最后触发的是页面的onReady,如下图:

从PageA打开pageB时的生命周期顺序

 (2)离开页面

离开当前页面时,首先触发当前页面的卸载onUnload,接着是组件离开节点树的detached。最后显示之前的页面,触发onShow。如下图:

从PageB返回到PageA的生命周期顺序

 (3)打开小程序

小程序、Page与Component生命周期运行顺序,先从小程序加载然后再加载Page,在加载Page之前会先初始化该页面所用的所有组件,之后才触发页面的onLoad生命周期,如下图:

打开小程序时的生命周期顺序

 

 


http://www.niftyadmin.cn/n/226267.html

相关文章

Vue——透传 Attributes

目录 Attributes 继承​ 对 class 和 style 的合并​ v-on 监听器继承​ 深层组件继承​ 禁用 Attributes 继承​ 多根节点的 Attributes 继承​ 在 JavaScript 中访问透传 Attributes​ Attributes 继承​ “透传 attribute”指的是传递给一个组件&#xff0c;却没有被…

GaussDB工作级开发者认证—第一章GaussDB数据库介绍

一. GaussDB概述 GaussDB是华为基于openGauss自研生态推出的企业级分布式关系型数据库。具备企业级复杂事物混合负载能力&#xff0c;同时支持分布式事务强一致性&#xff0c;同城跨AZ部署&#xff0c;数据0丢失&#xff0c;支持1000的计算节点扩展能力&#xff0c;4PB海量存储…

算法 DAY24 回溯 || 第77题. 组合 216.组合总和III 17.电话号码的字母组合 39. 组合总和

前置知识 回溯算法模板框架如下&#xff1a;void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本层集合中元素&#xff08;树中节点孩子的数量就是集合的大小&#xff09;) {处理节点;backtracking(路径&#xff0c;选择列表); // 递归回溯&am…

spring框架基础知识和基于XML的Bean对象的管理回顾

什么是spring框架&#xff1f; spring基本功能所必须的jar包就是这些 如何获取bean&#xff1f; IOC原理 上面耦合度太高了 改进使用工厂模式 上面并没有把耦合度降低到最低&#xff0c;使用反射 spring实现IOC的两种方式 BeanFactory和ApplicationContext IOC如何管理Bea…

【4月截稿SCI期刊】可持续计算、计算机通信网络、物联网以及6G中的智能技术等研究方向

电力类SCI&EI 【期刊简介】IF&#xff1a;4.5-5.0&#xff0c;JCR1/2区&#xff0c;中科院3区 【检索情况】SCI&EI 双检&#xff0c;正刊 【征稿领域】可持续计算&#xff0c;可持续系统、计算机科学与工程、电气工程以及其他工程学科与持续计算相关研究 【截稿日…

autosar com 模块的设计思路

Autosar Com模块的设计思路主要包括以下方面&#xff1a; 设计模块的接口&#xff1a;Com模块是一个基础模块&#xff0c;它需要和其他模块进行数据交互。因此设计模块接口是非常重要的。Com模块的接口需要设计成通用、灵活、易于使用的形式&#xff0c;能够满足各种应用场景的…

C#中生成和解析Xml,实体与Xml互转等

文章目录第一部分&#xff1a;C#中生成和解析Xml1. 相关说明和解释2. 生成Xml2-1 Xml样例2-2 C#生成上述2-1的Xml3. 解析Xml3-1 Xml样例3-2 C#解析上述3-1的Xml3-2-1 创建实体类 > DizCheckResult3-3-3 解析第二部分&#xff1a;C#中实体类与XML相互转换1. 工具类XmlSeriali…

RabbitMq 消息可靠性问题(一) --- publisher发送时丢失

前言 消息从生产者发送到exchange, 再到 queue, 再到消费者。这个过程中有哪些有消息丢失的可能性呢&#xff1f; 发送时丢失&#xff1a; 生产者发送的消息未送达 exchange消息到达 exchange 后未到达 queue MQ 宕机&#xff0c;queue将消息丢失consumer 接收到消息后未消费…