微信小程序生命周期的详细说明
以下是微信小程序生命周期的详细说明,按不同维度分类:
一、生命周期分类
- 应用生命周期
管理整个小程序的生命周期,包含以下核心函数: - onLaunch:首次启动时触发,全局只执行一次
- onShow:从后台进入前台时触发(冷启动/热启动)
- onHide:从前台进入后台时触发(如点击右上角关闭)
- 页面生命周期
管理单个页面的生命周期,关键函数包括: - onLoad:页面加载时触发,用于获取路由参数
- onShow:页面显示时触发(每次进入前台)
- onReady:页面初次渲染完成时触发(仅一次)
- onHide:页面隐藏时触发(跳转其他页面或进入后台)
- onUnload:页面销毁时触发(如关闭或路由返回)
- 组件生命周期
针对自定义组件的生命周期函数: - created:组件实例创建时触发
- attached:组件被添加到页面节点树时触发
- detached:组件从页面节点树移除时触发
二、生命周期运行机制
- 启动方式
- 冷启动:首次打开或销毁后重新打开,需完整初始化
- 热启动:后台切换回前台,保留原有状态
- 状态切换规则
- 前台→后台:触发页面 onHide 和应用 onHide
- 挂起:后台持续5秒后停止JS线程,保留内存状态
- 销毁:挂起30分钟或系统资源不足时触发,释放内存
三、生命周期执行顺序
- 应用与页面联动
- 启动流程:App.onLaunch → Page.onLoad → Page.onShow → Page.onReady
- 切换后台:Page.onHide → App.onHide46
- 组件与页面联动
- 组件所在页面的生命周期函数优先于组件自身生命周期执行
四、核心注意事项
- 资源管理
- 在 onUnload 或组件 detached 中清理定时器、事件监听等资源
- 避免在 onHide 阶段执行耗时操作,可能被系统强制终止
- 数据初始化
- 页面参数传递需在 onLoad 中通过 options 接收
- 动态数据更新应在 onShow 中处理,确保每次进入前台时同步
通过合理利用生命周期函数,开发者可精准控制小程序资源加载、状态切换和数据更新,提升用户体验与性能。