【微信小程序】生命周期,插槽和组件间通信

本文详细介绍了微信小程序中组件的生命周期,包括created、attached、detached等重要函数,以及pageLifetimes节点的使用。此外,讨论了插槽的概念,包括单个插槽和多个插槽的定义。最后,文章阐述了父子组件间通信的三种方式:属性绑定、事件绑定和获取组件实例,并给出了具体实现示例。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、组件的生命周期

1.1 组件全部的生命周期函数

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

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

1.2 组件主要的生命周期函数

在小程序组件中,最重要的生命周期函数有 3 个,分别是 created 、 attached 、 detached 。它们各自的特点如下:

  1. 组件实例 刚被创建 好的时候,created 生命周期函数会被触发 此时还不能调用 setData通常在这个生命周期函数中,只应该用于给组件的 this 添加一些自定义的属性字段

  2. 在组件 完全初始化完毕、进入页面节点树后 , attached 生命周期函数会被触发此时, this.data 已被初始化完毕这个生命周期很有用,绝大多数初始化的工作可以在这个时机进行(例如发请求获取初始数据)

  3. 在组件 离开页面节点树后 , detached 生命周期函数会被触发退出一个页面时,会触发页面内每个自定义组件的 detached 生命周期函数此时适合做一些清理性质的工作

/**
* 组件的初始数据
*/
data: {
   
_rgb:{
    // rgb 的颜色值对象
r:0,
g:0,
b:
},
fullColor: '0, 0, 0' //根据rgb对象的三个属性,动态计算fullColor 的值
},
})

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

1.3 lifetimes 节点

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

二、组件所在页面的生命周期

2.1 什么是组件所在页面的生命周期

有时, 自定义组件的行为依赖于页面状态的变化 ,此时就需要用到 组件所在页面的生命周期 。例如:每 当触发页面的 show 生命周期函数的时候,我们希望能够重新生成一个随机的 RGB 颜色值。在自定义组件中,组件所在页面的生命周期函数有如下 3 个,分别是:

// components/test3/test3.js
Component({
   
//旧式的定义方式
created() {
   
console.log('created'); //在组建实例进入页面节点树时执行
},
attached(){
   
console.log('attached'); //在组件实例被从页面节点树移除时执行
},
// 推荐用法
lifetimes:{
   
created() {
   
console.log('created~'); //在组建实例进入页面节点树时执行
},
attached(){
   
console.log('attached~');//在组件实例被从页面节点树移除时执行
},
}
})

2.2 pageLifetimes 节点

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

2.3 生成随机的 RGB 颜色值

// components/test3/test3.js
Component({
   
pageLifetimes:{
   
show(){
   
console.log('show');
},
hide(){
   
console.log('hide');
},
resize(){
   
console.log('resize');
}
}

})
// components/test3/test3.js
Component({
   
/**
* 组件的方法列表
*/
methods: {
   
changeR
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值