• 【微信小程序】小程序应用和页面生命周期


    什么是生命周期

    生命周期(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) {
        
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    1. 用户首次打开小程序,触发 onLaunch(全局只触发一次)。
    2. 小程序初始化完成后,触发onShow方法,监听小程序显示。
    3. 小程序从前台进入后台,触发 onHide方法。
    4. 小程序从后台进入前台显示,触发 onShow方法。
    5. 小程序后台运行一定时间,或系统资源占用过高,会被销毁。
    属性类型描述触发时机
    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('用户正在分享!');
        }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    1. 小程序注册完成后,加载页面,触发onLoad方法。
    2. 页面载入后触发onShow方法,显示页面。
    3. 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
    4. 当小程序后台运行或跳转到其他页面时,触发onHide方法。
    5. 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
    6. 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload
    函数说明作用
    onLoad生命周期回调—监听页面加载发送请求获取数据
    onShow生命周期回调—监听页面显示请求数据
    onReady生命周期回调—监听页面初次渲染完成获取页面元素(少用)
    onHide生命周期回调—监听页面隐藏终止任务,如定时器或者播放音乐
    onUnload生命周期回调—监听页面卸载终止任务

    应用生命周期与页面生命周期之间的交互

    在这里插入图片描述

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

    实例演示:

    在这里插入图片描述
    监听事件:

    在这里插入图片描述

  • 相关阅读:
    [Android Frameworks] native Binder and IMemory
    Android组件通信——广播机制:BroadcastReceiver(二十九)
    Three.js添加阴影和简单后期处理
    Could not create the Java virtual machine解决
    大数据Flink(九十四):DML:TopN 子句
    栈和队列的基本使用
    Seata-AT模式
    C++ string常用函数用法总结
    java毕业设计“传情旧物”网站mybatis+源码+调试部署+系统+数据库+lw
    第2章 第一个Spring Boot项目
  • 原文地址:https://blog.csdn.net/weixin_46277553/article/details/126171490