深入理解微信小程序---生命周期

Posted by 黎子豪 on September 3, 2023

首先我们得了解一下什么是微信小程序

微信小程序是腾讯在2017年推出的无需下载就可以在微信上使用的应用程序. 微信小程序具有以下特点:

  • 无需下载安装即可使用
  • 微信官方提供技术支持
  • 微信官方提供推广渠道
  • 开发成本低
  • 应用场景丰富

微信小程序的出现,改变了人们使用移动应用的方式。它让用户可以更轻松地获取和使用各种服务,也为开发者提供了新的发展机遇。

微信小程序的生命周期

微信小程序的生命周期分为四个部分:初始化、运行、销毁和错误处理。

  • 初始化:当小程序启动时,会首先执行初始化操作,包括创建页面实例、设置页面数据、绑定页面事件等。
  • 运行:当小程序启动后,会进入运行状态,此时页面实例会一直保持运行状态,直到小程序被销毁或页面被切换。
  • 销毁:当小程序被销毁或页面被切换时,会执行销毁操作,包括释放页面资源、保存页面数据等。
  • 错误处理:当小程序发生错误时,会执行错误处理操作,包括记录错误日志、提示用户等。

    微信小程序的生命周期函数

    微信小程序的生命周期函数是指在小程序的不同阶段执行的函数,包括初始化、运行、销毁和错误处理等阶段。每个阶段都会执行特定的函数,以实现特定的功能。

    初始化阶段

    初始化阶段是指在小程序启动时执行的函数,包括创建页面实例、设置页面数据、绑定页面事件等。

    运行阶段

    运行阶段是指在小程序启动后执行的函数,包括页面渲染、页面交互等。

    销毁阶段

    销毁阶段是指在小程序被销毁或页面被切换时执行的函数,包括释放页面资源、保存页面数据等。

    错误处理阶段

    错误处理阶段是指在小程序发生错误时执行的函数,包括记录错误日志、提示用户等。

    微信小程序的生命周期图示

应用的生命周期

生命周期说明
onLaunch小程序初始化完成时触发,全局只触发一次
onShow小程序启动,或从后台进入前台显示时触发
onHide小程序从前台进入后台时触发
onError小程序发生脚本错误或 API 调用报错时触发
onPageNotFound小程序要打开的页面不存在时触发
onUnhandledRejection()小程序有未处理的 Promise 拒绝时触发
onThemeChange系统切换主题时触发

页面的生命周期

生命周期说明
show组件所在的页面被展示时执行
hide组件所在的页面被隐藏时执行

组件的生命周期

生命周期说明
created生命周期回调—监听页面加载
attached生命周期回调—监听页面显示
ready生命周期回调—监听页面初次渲染完成
moved生命周期回调—监听页面隐藏
detached生命周期回调—监听页面卸载
error每当组件方法抛出错误时执行

生命周期的执行过程

小程序生命周期是指小程序从启动到销毁过程中所经历的各个阶段。每个阶段都会触发一个相应的生命周期回调函数,开发者可以根据需要在这些函数中执行特定的操作。

小程序生命周期可以分为以下几个阶段:

启动阶段:小程序启动时,会触发 App.onLaunch 函数。 显示阶段:小程序显示时,会触发 App.onShow 和 Page.onShow 函数。 隐藏阶段:小程序隐藏时,会触发 App.onHide 和 Page.onHide 函数。 销毁阶段:小程序销毁时,会触发 App.onUnload 和 Page.onUnload 函数。 以下是小程序生命周期执行顺序图:

小程序生命周期执行顺序图: [移除了无效网址]

具体执行顺序如下:

小程序生命周期是指小程序从启动到销毁过程中所经历的各个阶段。每个阶段都会触发一个相应的生命周期回调函数,开发者可以根据需要在这些函数中执行特定的操作。

小程序生命周期可以分为以下几个阶段:

  • 启动阶段:小程序启动时,会触发 App.onLaunch 函数。
  • 显示阶段:小程序显示时,会触发 App.onShowPage.onShow 函数。
  • 隐藏阶段:小程序隐藏时,会触发 App.onHidePage.onHide 函数。
  • 销毁阶段:小程序销毁时,会触发 App.onUnloadPage.onUnload 函数。

以下是小程序生命周期执行顺序图:

具体执行顺序如下:

  1. App.onLaunch:小程序启动时,会首先触发 App.onLaunch 函数。该函数只会在小程序第一次启动时执行一次。
  2. Page.onLoad:小程序页面加载时,会触发 Page.onLoad 函数。该函数会在每次进入页面时执行一次。
  3. Page.onShow:小程序页面显示时,会触发 Page.onShow 函数。该函数会在每次页面显示时执行一次。
  4. Page.onHide:小程序页面隐藏时,会触发 Page.onHide 函数。该函数会在每次页面隐藏时执行一次。
  5. App.onHide:小程序隐藏时,会触发 App.onHide 函数。该函数会在每次小程序隐藏时执行一次。
  6. App.onUnload:小程序销毁时,会触发 App.onUnload 函数。该函数会在每次小程序销毁时执行一次。
  7. Page.onUnload:小程序页面销毁时,会触发 Page.onUnload 函数。该函数会在每次页面销毁时执行一次。

需要注意的是:

  • App.onLaunch 函数中,可以进行一些全局的初始化操作,例如初始化数据、设置全局变量等。
  • Page.onLoad 函数中,可以进行页面相关的初始化操作,例如获取页面参数、渲染页面内容等。
  • Page.onShow 函数中,可以进行页面相关的显示操作,例如播放音乐、显示动画等。
  • Page.onHide 函数中,可以进行页面相关的隐藏操作,例如停止播放音乐、隐藏动画等。
  • App.onHide 函数中,可以进行一些全局的清理操作,例如释放资源、保存数据等。
  • App.onUnload 函数中,可以进行一些全局的销毁操作,例如关闭数据库连接、释放内存等。
  • Page.onUnload 函数中,可以进行页面相关的销毁操作,例如清理页面数据、释放页面资源等。

开发者可以根据需要在这些生命周期回调函数中执行特定的操作,以实现小程序的各种功能。