详解微信小程序应用和页面生命周期

 更新时间:2022年08月06日 10:02:48   作者:苏凉.py  
生命周期是指一个对象从创建→>运行>销毁的整个阶段,强调的是一个时间段,文中介绍了生命周期的分类和微信小程序应用,需要的朋友可以参考下

什么是生命周期

生命周期(Life Cycle)是指一个对象从创建→>运行>销毁的整个阶段,强调的是一个时间段。如:

  • 张三出生,表示这个人生命周期的开始
  • 张三离世,表示这个人生命周期的结束
  • 中间张三的一生,就是张三的生命周期

我们可以把每个小程序运行的过程,也概括为生命周期:

  • 小程序的启动,表示生命周期的开始
  • 小程序的关闭,表示生命周期的结束
  • 中间小程序运行的过程,就是小程序的生命周期

生命周期的分类

在小程序中,生命周期分为两类,分别是:

  • 应用生命周期

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

  • 页面生命周期

特指小程序中,每个页面的加载->渲染->销毁的过程

其中,页面的生命周期范围较小,应用程序的生命周期范围较大:

生命周期函数

生命周期函数:是由小程序框架提供的内置函数,会伴随着生命周期,自动按次序执行。

生命周期函数的作用:允许程序员在特定的时间点,执行某些特定的操作。例如,页面刚加载的时候,可以在onLoad生命周期函数中初始化页面的数据。

注意:生命周期强调的是时间段,生命周期函数强调的是时间点。

小程序中的生命周期函数分为两类,分别是:

应用的生命周期函数
特指小程序从启动->运行-→>销毁期间依次调用的那些函数页面的生命周期函数
特指小程序中,每个页面从加载->渲染-→>销毁期间依次调用的那些函数 小程序的应用生命周期函数

小程序的应用生命周期函数需要在app.js 中进行声明。如:

App({
  /**
   * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
   */
  onLaunch: function () {
      console.log("小程序启动!");
  },
  /**
   * 当小程序启动,或从后台进入前台显示,会触发 onShow
   */
  onShow: function (options) {
      console.log('小程序正在前台运行!');
  },
  /**
   * 当小程序从前台进入后台,会触发 onHide
   */
  onHide: function () { 
      console.log("小程序进入后台运行!");
  },
  /**
   * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
   */
  onError: function (msg) {
    
  }
})
  • 用户首次打开小程序,触发 onLaunch(全局只触发一次)。
  • 小程序初始化完成后,触发onShow方法,监听小程序显示。
  • 小程序从前台进入后台,触发 onHide方法。
  • 小程序从后台进入前台显示,触发 onShow方法。
  • 小程序后台运行一定时间,或系统资源占用过高,会被销毁。
属性类型描述触发时机
onLaunchFunction监听小程序初始化当小程序初始化完成时,会触发 onLaunch(全局只触发一次)。
onShowFunction监听小程序显示当小程序启动,或从后台进入前台显示,会触发 onShow
onHideFunction监听小程序隐藏当小程序从前台进入后台,会触发 onHide
onErrorFunction错误监听函数当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
其他Any 开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问,上面的getPics就是函数, globalName是数据,这里面的函数和数据都是全局的。调用方式:在Pager中通过getApp()方法得到App对象并获得全局的数据和调用全局的函数

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

小程序的页面生命周期函数

小程序的页面生命周期函数需要在页面.js 中进行声明。如:

Page({
    /**
     * 页面的初始数据
     */
    data: {
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log('本地生活页面加载完毕');
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        console.log("初次渲染完毕!");
    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        console.log("页面显示完成");
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {
        console.log("页面已被隐藏!");
    },
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        console.log("GG");
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        console.log('正在刷新!');
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        console.log('正在加载更多!');
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        console.log('用户正在分享!');
    }
})
  • 小程序注册完成后,加载页面,触发onLoad方法。
  • 页面载入后触发onShow方法,显示页面。
  • 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
  • 当小程序后台运行或跳转到其他页面时,触发onHide方法。
  • 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
  • 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload。
函数说明作用
onLoad生命周期回调—监听页面加载发送请求获取数据
onShow生命周期回调—监听页面显示请求数据
onReady生命周期回调—监听页面初次渲染完成获取页面元素(少用)
onHide生命周期回调—监听页面隐藏终止任务,如定时器或者播放音乐
onUnload生命周期回调—监听页面卸载终止任务

  • 小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。
  • 当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。
  • 当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。

实例演示:

监听事件:

到此这篇关于微信小程序应用和页面生命周期的文章就介绍到这了,更多相关小程序应用和页面生命周期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • es6中的import导入模块 和 export导出模块详解

    es6中的import导入模块 和 export导出模块详解

    require 是 CommonJS 模块系统中用于导入模块的关键字,采用同步加载方式;而 import 和 export 是 ES6 模块系统中用于导入和导出模块的关键字,采用静态加载方式,并且支持异步加载,这篇文章主要介绍了es6中的import导入模块 和 export导出模块,需要的朋友可以参考下
    2023-11-11
  • jquery实现文本框textarea自适应高度

    jquery实现文本框textarea自适应高度

    这篇文章主要介绍了jquery实现文本框textarea自适应高度的相关资料,需要的朋友可以参考下
    2016-03-03
  • List Installed Hot Fixes

    List Installed Hot Fixes

    List Installed Hot Fixes...
    2007-06-06
  • 微信小程序整个页面的自动适应布局的实现

    微信小程序整个页面的自动适应布局的实现

    这篇文章主要介绍了微信小程序整个页面的自动适应布局的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JavaScript里实用的原生API汇总

    JavaScript里实用的原生API汇总

    这段时间翻了一番JavaScript的api,发现不少好的轮子,省去造的麻烦了。下面给大家汇总一下,有需要的小伙伴可以参考下。
    2015-05-05
  • JS DOMReady事件的六种实现方法总结

    JS DOMReady事件的六种实现方法总结

    下面小编就为大家带来一篇JS DOMReady事件的六种实现方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JavaScript中的this指向和自定义属性详解

    JavaScript中的this指向和自定义属性详解

    下面小编就为大家带来一篇js中的this指向和自定义属性。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • JS数组循环的方式以及效率分析对比

    JS数组循环的方式以及效率分析对比

    本文详细讲解了JS数组循环的方式以及效率分析对比,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • JavaScript字符串的json的自定义加密解密函数示例

    JavaScript字符串的json的自定义加密解密函数示例

    JavaScript自定义函数中使用String.fromCharCode函数将输入字符串中每个字符的Unicode编码加1,然后将加密后的字符拼接成一个新字符串返回,调用JSON.stringify函数转换json成一个普通字符串
    2023-12-12
  • JS+H5 Canvas实现时钟效果

    JS+H5 Canvas实现时钟效果

    这篇文章主要为大家详细介绍了JS+H5 Canvas实现时钟效果,利用JavaScript和Canvas实现简单时钟效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07

最新评论