小程序的应用生命周期、页面生命周期

一、应用生命周期

小程序从启动 -> 运行 -> 销毁的过程

应用生命周期函数

应用生命周期函数在 app.js 中声明,执行顺序如下

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

二、页面生命周期

每个页面加载 -> 渲染 -> 销毁的过程

页面生命周期函数

页面生命周期函数在页面的 .js 文件中声明,执行顺序如下

  • onLoad(页面创建时执行,一个页面生命周期中只调用一次,可接收一个object参数,里面包含用wx.navigateTo()打开该页面时拼接在url中的参数,常用于初始化,转存数据)

    ①是打开小程序就展示的的页面时执行

    ②是被其他页面调用 wx.navigateTo 打开的页面时执行

    ③是被调用 wx.switchTab 初次打开的页面时执行

  • onShow(页面出现在前台时执行)

  • onReady(页面首次渲染完毕时执行,监听页面初次渲染完成,一个页面生命周期中只调用一次,可在此函数中修改页面内容,如调用wx.setNavigationBarTitle)

    ①是打开小程序就展示的的页面时执行

    ②是被其他页面调用 wx.navigateTo 打开的页面时执行

    ③是被调用 wx.switchTab 初次打开的页面时执行

  • onHide(页面没有被关闭,只是从前台变为后台时执行)

    ①普通页面使用 wx.navigateTo 切换到其他页面时执行

    ②tabBar 页面使用 wx.switchTab 切换到其他页面时执行

  • onUnload(页面销毁时执行,一个页面生命周期中只调用一次)

  • onPullDownRefresh(触发下拉刷新时执行)

  • onReachBottom(页面触底时执行)

  • onShareAppMessage(页面被用户分享时执行)

  • onPageScroll(页面滚动时执行)

  • onResize(页面尺寸变化时执行)

  • onTabItemTap(当前是 tabBar 页时,点击 tab 时触发,如果使用了自定义tabbar,则不会触发。可接收一个object参数,其中包含所点击的 tab 的 index、pagePath、text等数据)

注:

​ ①调用wx.switchTab时(只能跳转到 tabBar 页面),关闭其他所有非 tabBar 页面,既所有非 tabBar 未关闭页面执行onUnload

​ ②调用 wx.reLaunch 时,所有未关闭页面都会关闭(包括当前页),既所有未关闭页执行 onUnload

​ ③ 调用 wx.redirectTo时(只能跳转到非 tabBar 页面),当前页被关闭,当前页执行 onUnload

​ ④ 调用 wx.navigateTo时,保存当前页(使用 wx.navigateBack 可以返回),跳转到应用内的某个页面。但是不能跳到 tabbar 页面,当前页执行 onHide

​ ⑤调用 wx.navigateBack(返回上一页面或多级页面)时,当前页(包含当前页)到目标页之间所有出栈页都被关闭,执行onUnload

猜你喜欢

转载自blog.csdn.net/weixin_44001906/article/details/127127543