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

 更新时间: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方法。

实例演示:

监听事件:

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

相关文章

  • 利用js读取动态网站从服务器端返回的数据

    利用js读取动态网站从服务器端返回的数据

    这篇文章主要介绍了利用js读取动态网站从服务器端返回的数据,需要的朋友可以参考下
    2014-02-02
  • JavaScript显示当然日期和时间即年月日星期和时间

    JavaScript显示当然日期和时间即年月日星期和时间

    使用js显示当然日期和时间在网页中很是常见,方法有很多,不过多说大同小异,下面有个不错的示例,需要的朋友可以感受下
    2013-10-10
  • JavaScript实现一个前端会魔法的旋转魔方相册

    JavaScript实现一个前端会魔法的旋转魔方相册

    星光不问赶路人,时光不误有心人,牛牛最近学到了一个神奇的旋转魔方,今天就来分享给大家吧,希望大家能喜欢
    2022-06-06
  • JavaScript数组方法的错误使用例子

    JavaScript数组方法的错误使用例子

    在本篇文章中我们给大家分享了几种使用JavaScript数组容易出错的例子,需要的朋友们可以参考下。
    2018-09-09
  • 图解js图片轮播效果

    图解js图片轮播效果

    这篇文章主要以图片展示的方式向大家讲解了js图片轮播效果的实现方法,对图片轮播实现原理进行了详细介绍,感兴趣的朋友可以参考一下
    2015-12-12
  • 原生js实现3D轮播图

    原生js实现3D轮播图

    这篇文章主要为大家详细介绍了原生js实现3D轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • 微信小程序时间选择插件使用详解

    微信小程序时间选择插件使用详解

    这篇文章主要为大家详细介绍了微信小程序时间选择插件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 详解javascript的变量与标识符

    详解javascript的变量与标识符

    这篇文章主要为大家介绍了javascript的变量与标识符,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • js下为表格内部动态添加行的代码

    js下为表格内部动态添加行的代码

    最近的一个项目中在保存表单数据时,要用到一个动态添加行的功能。平时动态添加行只是在表格的最下面添加,现在在表格中间动态添加行,而且表格内部是包含并且单元格的,其实很简单,下面贴出代码。
    2010-06-06
  • ES6与CommonJS中的模块处理的区别

    ES6与CommonJS中的模块处理的区别

    ES6和CommonJS都有自己的一套处理模块化代码的措施,这篇文章主要介绍了ES6与CommonJS中的模块处理的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06

最新评论