-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
Description
面试官:说说微信小程序的生命周期函数有哪些?
微信小程序的生命周期可以分为三部分:应用生命周期、页面生命周期和组件生命周期。下面我会详细介绍每个生命周期的函数及其触发时机。
一、应用生命周期
应用生命周期函数定义在app.js中。
| 函数名 | 触发时机 |
|---|---|
| onLaunch | 小程序初始化完成时触发(全局只触发一次) |
| onShow | 小程序启动,或从后台进入前台显示时触发 |
| onHide | 小程序从前台进入后台时触发 |
| onError | 小程序发生脚本错误或API调用报错时触发 |
| onPageNotFound | 小程序要打开的页面不存在时触发 |
| onUnhandledRejection | 小程序有未处理的Promise拒绝时触发 |
| onThemeChange | 系统切换主题时触发 |
二、页面生命周期
页面生命周期函数在page.js中定义。
| 函数名 | 触发时机 | 常见作用 |
|---|---|---|
| onLoad | 页面加载时触发 | 用于加载页面数据 |
| onShow | 页面显示时触发 | 页面重新显示时刷新数据 |
| onReady | 页面初次渲染完成时触发 | 获取页面 DOM 节点 |
| onHide | 页面隐藏时触发 | 停止页面动画或计时器等 |
| onUnload | 页面卸载时触发 | 停止网络请求或清理订阅等 |
三、组件生命周期
组件生命周期函数在component.js中定义。
| 函数名 | 触发时机 |
|---|---|
| created | 组件实例刚创建时触发 |
| attached | 组件进入页面节点树时触发 |
| ready | 组件首次渲染完成时触发 |
| moved | 组件位置改变时触发 |
| detached | 组件离开页面节点树时触发 |
| error | 组件方法错误时触发 |
四、执行顺序
一个典型的完整生命周期顺序为:
-
小程序打开:onLaunch -> onShow -> onLoad -> onShow -> onReady
-
进入新页面:onHide -> onLoad -> onShow -> onReady
-
返回上一页:onUnload -> onShow
-
小程序切后台:onHide
-
小程序重启:onLaunch -> onShow