微信小程序开发中组件的生命周期详细介绍

 更新时间:2022年08月23日 15:54:05   作者:苏凉.py  
生命周期是指一个对象从创建→>运行>销毁的整个阶段,强调的是一个时间段,文中介绍了小程序中组件的生命周期,需要的朋友可以参考下

组件的生命周期

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。

其中,最重要的生命周期是 created、attached、 detached ,包含一个组件实例生命流程的最主要时间点。

自定义组件的生命周期函数

小程序组件可用的全部生命周期如下表所示:

生命周期函数参数描述说明
created在组件实例刚刚被创建时执行
attached在组件实例进入页面节点树时执行
ready在组件在视图层布局完成后执行
moved在组件实例被移动到节点树另一个位置时执行
detached在组件实例被从页面节点树移除时执行
errorObject Error每当组件方法抛出错误时执行

执行顺序

从该图中可以看出组件的 ready 与 detached 执行顺序并没有明确的先后关系。

组件常用的生命周期函数

在小程序组件中,最重要的生命周期函数有3个,分别是createdattached.

detached。它们各自的特点。如下︰

  • 组件实例刚被创建好的时候,created生命周期函数会被触发,此时还不能调用setData,通常在这个生命周期函数中,只应该用于给组件的this添加一些自定义的属性字段在组件
  • 完全初始化完毕、进入页面节点树后,attached生命周期函数会被触发,此时, this.data已被初始化完毕。这个生命周期很有用,绝大多数初始化的工作可以在这个时机进行(例如发请求获取初始数据)
  • 在组件离开页面节点树后,detached生命周期函数会被触发,退出一个页面时,会触发页面内每个自定义组件的detached生命周期函数此时适合做一些清理性质的工作

lifetimes节点

在小程序组件中,生命周期函数可以直接定义在Component构造器的第一级参数中,可以在 lifetimes字段内进行声明(这是推荐的方式,其优先级最高)。如下:

Component({
	lifetimes:{
	   created(){
	       console.log('created');
	   },
	   attached(){
	       console.log('attached');
	   }
	}
)}

注意:若不写在lifetime节点中且同时存在lifetime节点,优先执行lifetime节点中的生命周期函数,并覆盖掉节点之外的生命周期函数。

组件所在页面的生命周期函数

有时,自定义组件的行为依赖于页面状态的变化,此时就需要用到组件所在页面的生命周期。

在自定义组件中,组件所在页面的生命周期函数有如下3个,分别是:

生命周期函数参数描述
show组件所在的页面被展示时执行
hide组件所在的页面被隐藏时执行
resizeobject Size组件所在的页面尺寸变化时执行

pageLifetimes节点

组件所在页面的生命周期函数,需要定义在pageLifetimes节点中,如下:

Component({
	pageLifetimes:{
      	show(){
           console.log("show!!");
       },
       hide(){
           console.log("hide!!");
       },
       resize(){
           console.log("resize");
       }						
   }				
)}

当页面显示和隐藏时触发

到此这篇关于微信小程序开发中组件的生命周期详细介绍的文章就介绍到这了,更多相关小程序生命周期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript简单实现深浅拷贝过程详解

    javascript简单实现深浅拷贝过程详解

    这篇文章主要介绍了javascript简单实现深浅拷贝过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • js Html结构转字符串形式显示代码

    js Html结构转字符串形式显示代码

    js Html结构转字符串形式显示代码,需要的朋友可以参考下。
    2011-11-11
  • javascript数据类型验证方法

    javascript数据类型验证方法

    这篇文章主要为大家分享了一个简单的javascript数据类型验证方法,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • JavaScript中return返回多个值的三个方法实现

    JavaScript中return返回多个值的三个方法实现

    本文主要介绍了JavaScript中return返回多个值的三个方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • js仿小米二级菜单显示效果

    js仿小米二级菜单显示效果

    这篇文章主要为大家详细介绍了js仿小米二级菜单显示效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • JavaScript重复元素处理方法分析【统计个数、计算、去重复等】

    JavaScript重复元素处理方法分析【统计个数、计算、去重复等】

    这篇文章主要介绍了JavaScript重复元素处理方法,结合实例形式分析了javascript针对字符串、数组中重复元素的个数统计,计算及去重复等相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • 浅析JS中对函数function的理解(基础篇)

    浅析JS中对函数function的理解(基础篇)

    我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法。下面给大家谈下对JS中函数function的理解,一起看看吧
    2016-10-10
  • 微信小程序web-view无法打开该页面不支持打开的解决方法

    微信小程序web-view无法打开该页面不支持打开的解决方法

    小程序现在日渐成熟,功能也越来越强大,我们今天来一起看看小程序跳转的问题,下面这篇文章主要给大家介绍了关于微信小程序web-view无法打开该页面不支持打开的解决方法,需要的朋友可以参考下
    2023-01-01
  • 30分钟快速入门掌握ES6/ES2015的核心内容(下)

    30分钟快速入门掌握ES6/ES2015的核心内容(下)

    这篇文章主要给大家介绍了如何通过30分钟快速入门掌握ES6/ES2015的核心内容的相关资料,之前给大家介绍过基础的一些内容,下面继续来介绍一些其他的新特性,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-04-04
  • JavaScript中的Reflect对象详解(ES6新特性)

    JavaScript中的Reflect对象详解(ES6新特性)

    这篇文章主要介绍了JavaScript中的Reflect对象(ES6新特性)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07

最新评论