一、组件的生命周期
1.1 组件全部的生命周期函数
小程序组件可用的全部生命周期如下表所示
生命周期函数 | 参数 | 描述说明 |
---|---|---|
created | 无 | 在组件实例刚刚被创建时执行 |
attached | 无 | 在组件实例进入页面节点树时执行 |
ready | 无 | 在组件在视图层布局完成后执行 |
moved | 无 | 在组件实例被移动到节点树另一个位置时执行 |
detached | 无 | 在组件实例被从页面节点树移除时执行 |
error Object | Error | 每当组件方法抛出错误时执行 |
1.2 组件主要的生命周期函数
在小程序组件中,最重要的生命周期函数有 3 个,分别是 created 、 attached 、 detached 。它们各自的特点如下:
-
组件实例 刚被创建 好的时候,created 生命周期函数会被触发 此时还不能调用 setData通常在这个生命周期函数中,只应该用于给组件的 this 添加一些自定义的属性字段
-
在组件 完全初始化完毕、进入页面节点树后 , attached 生命周期函数会被触发此时, this.data 已被初始化完毕这个生命周期很有用,绝大多数初始化的工作可以在这个时机进行(例如发请求获取初始数据)
-
在组件 离开页面节点树后 , 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 个,分别是:文章来源:https://www.toymoban.com/news/detail-500750.html
// 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 节点中,示例代码如下文章来源地址https://www.toymoban.com/news/detail-500750.html
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
到了这里,关于【微信小程序】生命周期,插槽和组件间通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!