【微信小程序】组件生命周期

本文详细介绍了微信小程序中组件的生命周期,包括created、attached、detached等关键阶段。此外,还探讨了生命周期方法的定义位置,如Component构造器内与lifetimes的区别,以及behaviors中的生命周期行为。通过代码实践,解释了不同生命周期函数的执行顺序和场景,帮助开发者更好地理解和掌握小程序组件的生命周期管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组件的生命周期

主要的三个函数:

  1. created

组件实例被创建好触发,组件在调用Component里的定义的数据data来实例化数据,
此时不能使用setData

  1. attached

组件初始化完毕,进入页面节点时被触发。几乎所有的初始化工作都在这里完成。

  1. detached

当页面退出时,页面中如果还有节点树,次函数被触发

定义生命周期的方法

可以直接写在Component构造器的第一级参数中,但是不建议。

小程序在2.2.3期,生命周期函数的位置建议写在lifetimes中,优先级要高于第一级参数

如果外部和lifetimes一起定义,只执行优先级高的,即是执行lifetimes里面的

behaviors中的生命周期

behavior中也存在生命周期,引入后同名的生命周期不会覆盖

但是,一个组件中多次引入同一个behavior,这个behavior中的生命周期只会在一个执行段中执行一次

每个组件在被同一个page中多次调用,每次引用都会执行一次生命周期

behavior中的生命周期优先高于组件的

代码实践

组件中

const Behavior = require('my-behavior');
Component({
   
   
  behaviors:[Behavior],
  // 一级生命周期函数
  created:function(){
   
   
    // 一般作日志记录
    console.log('create')
  
### 微信小程序组件生命周期解析 #### 组件主要生命周期函数 在微信小程序框架内,组件拥有特定的生命周期钩子来响应不同阶段的状态变化。这些状态涵盖了从创建到销毁的过程。 - **created**: 当组件实例刚被创建完成时触发此事件[^3]。此时,组件的数据观测 (data observer) 和其他初始化设置已经准备就绪,但是尚未渲染至页面上。 - **attached**: 此回调会在组件实例首次加入页面节点树之后立即调用[^4]。这意味着该组件现在已经是可见的一部分,并且其内部结构也已经被构建出来;然而,在这个时刻之前发生的任何样式调整可能还未生效。 - **detached**: 这是在组件即将离开当前视图并最终被销毁前的一个重要通知点。它允许开发者清理资源或执行必要的收尾工作,比如取消网络请求、解除定时器等操作。 #### 页面级生命周期方法 除了上述针对单个组件的方法外,还有专门用于处理整个页面行为的一组生命周期接口: - `show`: 每当页面重新显示给用户的时候都会触发这一事件,无论是初次加载还是返回导航栈中的某一页。 - `hide`: 对应于`show`, 它标志着页面暂时不可见,可能是由于跳转到了另一个页面或是应用进入了后台模式。 - `resize`: 如果设备屏幕大小发生变化,则会激活此功能以便应用程序能够适配新的布局尺寸。 ```javascript Component({ lifetimes: { attached: function() {}, detached: function() {} }, pageLifetimes: { show: function() {}, hide: function() {}, resize: function(size) {} } }); ``` 通过合理利用这些生命周期函数,可以有效地管理组件的行为逻辑以及优化用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值