小程序生命周期

生命周期


应用的生命周期函数

// app.js文件

App({
	// 小程序初始化完成时,执行此函数,全局触发一次,可以做一些初始化操作
	onLaunch: function(options){ },

	// 小程序启动,或从后台进入前台显示时触发
	onShow: function(options){ },
	
	// 小程序从前台进入后台时触发
	onHide: function(options){ },
})



页面的生命周期函数

// 页面的 .js 文件

Page({
	onLoad: function(options){ },  	// 监听页面加载,一个页面只调用一次
	
	onShow: function(){ },			// 监听页面显示
	
	onReady: function(){ },			// 监听页面的初次渲染完成,一个页面只调用一次
	
	onHide: function(){ },			// 监听页面隐藏
	
	onUnload: function(){ },		// 监听页面卸载,一个页面只调用一次
})

onReady() 是页面初次渲染完成,要对界面内容进行设置的API 如 wx.setNavigationBarTitle,需要在onReady之后执行




组件生命周期


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

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

在组件完全初始化完毕,进入页面节点树后,attached生命周期函数会被触发
此时this.data已被初始化完毕,发请求获取初始化数据

在组件离开页面节点树后,detached生命周期函数会被触发
退出一个页面时,会触发页面内每个自定义组件的detached生命周期函数


lifetimes

在小程序组件中,生命周期函数可以直接定义在Component构造器的第一级参数中,可以在lifetimes字段内进行声明

在lifetimes配置项中声明的生命周期函数优先级更高,会覆盖直接定义在一级参数中的生命周期函数

Component({
	// 推荐写法
	lifetimes: {
		attached(){ }, 	// 在组件实例进入页面节点树时执行
		detached(){ },	// 在组件实例被从页面节点树移除时执行
	}
	// 旧的定义方式
	attached(){ }, 	// 在组件实例进入页面节点树时执行
	detached(){ },	// 在组件实例被从页面节点树移除时执行
})

组件所在页面的生命周期

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

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

pageLifetimes

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

Component({
	// 推荐写法
	pageLifetimes: {
		show: function(){ }, // 页面被展示
		hide: function(){ }, // 页面被隐藏
		resize: function(size){ }, // 页面尺寸变化
	}
})



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Raccom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值