赞
踩
查看微信小程序官网内容,请点击 小程序官方组件生命周期
实例
刚被创建
好,执行created
,此时还不能调用setData
初始化完毕
、进入页面节点树
后,执行attached
,this.data 已被初始化,绝大多数初始化工作可以在这个时机进行(这个生命周期可以做一些异步请求、数据更新
)第一级参数
中lifetimes
字段内进行声明(这是推荐的方式,其优先级最高)Component({
lifetimes: {
created: function() {
// 在组件实例刚刚被创建时执行
console.log('子组件————————created')
},
attached: function() {
// 在组件实例进入页面节点树时执行
console.log('子组件————————attached')
},
ready: function() {
// 在组件在视图层布局完成后执行
console.log('子组件————————ready')
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
console.log('子组件————————detached')
},
},
// 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
attached: function() {
// 在组件实例进入页面节点树时执行
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
},
})
记一下,上面有四个打印的log,后面我们一起综合看下执行顺序
即在组件内部
,访问所在页面的生命周期
如果希望组件在 页面
onShow等
的时候,执行组件内部一些操作,就需要用到下面的生命周期
我具体的使用场景是,页面回退时
需要更新子组件中data,用这个 pageLifetimes show
就很棒棒了
要注意一点,如果是在 method
手动调用页面的 onShow
或 onLoad
方法,页面的生命周期会被执行,但是组件的相关生命周期
、组件所在页面的相关生命周期
都不会被再次执行!(可以往后面看打印的log)
Component({
// 组件所在页面的生命周期
pageLifetimes: {
show: function() {
console.log('子组件——————pageLifetimes——————show')
},
hide: function() {
console.log('子组件——————pageLifetimes——————hide')
},
resize: function(size) {
// 页面尺寸变化
}
}
})
这一次有两个打印的log,后面我们一起综合看下执行顺序
为了看得更清晰,我在page中也加了打印:
Page({
onLoad() {
console.log('页面————————onLoad')
},
onShow () {
console.log('页面————————onShow')
},
onReady () {
console.log('页面————————onReady')
},
onHide () {
console.log('页面————————onHide')
},
doShow () {
this.onShow()
},
doLoad () {
this.onLoad()
},
})
子组件 ———————— created
子组件 ———————— attached
页面 ———————— onLoad
子组件 ———————— pageLifetimes —————— show
页面 ———————— onShow
子组件 ———————— ready
页面 ———————— onReady
子组件 ———————— pageLifetimes —————— hide
页面 ———————— onHide
子组件 ———————— pageLifetimes —————— show
页面 ———————— onShow
页面 ———————— onShow
页面 ———————— onLoad
从内到外
(从组件到page),在卸载的时候也是从内到外
的pageLifetimes 的 show
,这个特性可用来更新组件欢迎留言哦,一起探索更多~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。