微信小程序 生命周期详解

yizhihongxing

关于微信小程序的生命周期,我们可以分为两大类:

  1. 应用生命周期
  2. 页面生命周期

接下来我将详细介绍这两类生命周期的每个阶段以及相关方法的作用。

应用生命周期

应用生命周期指的是整个小程序的生命周期。应用生命周期的函数在 app.js 中定义。

onLaunch

当小程序初次启动的时候,会触发 onLaunch 函数。该函数在小程序生命周期内仅会被触发一次。该函数的作用主要是初始化小程序,比如获取版本号、获取用户信息等操作。

示例代码:

App({
  globalData: {
    userInfo: null
  },
  onLaunch: function () {
    console.log('App Launch')
    // 小程序启动时获取用户信息
    wx.getUserInfo({
      success: res => {
        this.globalData.userInfo = res.userInfo
      }
    })
  }
})

onShow

当小程序启动或从后台进入前台显示时,会触发 onShow 函数。该函数可以获取到小程序启动前的路由信息,以及其他相关信息。

示例代码:

App({
  onShow: function (options) {
    console.log('App Show')
    // 如果是通过点击推广链接进入小程序,可以在这里进行统计
    if (options.query && options.query.from) {
      console.log('来源:' + options.query.from)
    }
  }
})

onHide

当小程序从前台进入后台或者被关闭时,会触发 onHide 函数。该函数的作用主要是保存应用状态或者做其他清理工作。

示例代码:

App({
  onHide: function () {
    console.log('App Hide')
    // 将全局数据保存到本地,下次启动时可以继续使用
    wx.setStorageSync('globalData', this.globalData)
  }
})

onError

当小程序出现错误时,会触发 onError 函数。该函数的作用主要是记录错误日志等操作。

示例代码:

App({
  onError: function (error) {
    console.log('App Error', error)
    // 将错误信息发送到服务器,以便分析和处理
    wx.request({
      url: 'https://example.com/error',
      method: 'POST',
      data: {
        message: error.message,
        stack: error.stack
      }
    })
  }
})

页面生命周期

页面生命周期指的是每个页面的生命周期。页面生命周期的函数在每个页面的 js 文件中定义。

onLoad

当页面加载完毕时,会触发 onLoad 函数。该函数的作用主要是初始化页面数据,比如从网络中获取数据等。

示例代码:

Page({
  data: {
    posts: []
  },
  onLoad: function () {
    wx.request({
      url: 'https://example.com/posts',
      success: res => {
        this.setData({
          posts: res.data
        })
      }
    })
  }
})

onShow

当页面出现在前台时,会触发 onShow 函数。该函数的作用主要是进行页面的刷新。通常用于监听页面数据的变化,以及进行页面动态更新。

示例代码:

Page({
  data: {
    count: 0
  },
  onShow: function () {
    // 监听数据变化,如果发生变化就进行页面刷新
    wx.getStorage({
      key: 'count',
      success: res => {
        if (res.data !== this.data.count) {
          this.setData({
            count: res.data
          })
        }
      }
    })
  }
})

onReady

当页面渲染完毕时,会触发 onReady 函数。该函数的作用主要是进行页面的初始化,例如设置页面标题、操作 DOM 等。

示例代码:

Page({
  onReady: function () {
    // 设置页面标题
    wx.setNavigationBarTitle({
      title: '页面标题'
    })
  }
})

onHide

当页面从前台进入后台时,会触发 onHide 函数。该函数的作用主要是保存页面状态或者做其他清理工作。

示例代码:

Page({
  onHide: function () {
    // 保存页面数据到本地存储,下次进入时可以继续使用
    wx.setStorageSync('posts', this.data.posts)
  }
})

onUnload

当页面被销毁时,会触发 onUnload 函数。该函数的作用主要是保存页面状态或者做其他清理工作。

示例代码:

Page({
  onUnload: function () {
    // 清理定时器等资源
    clearInterval(this.timer)
  }
})

以上是微信小程序生命周期的完整攻略介绍,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序 生命周期详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Flutter 中如何优雅的实现多渠道打包(埋点统计系列)

    Flutter 中如何优雅的实现多渠道打包(埋点统计系列) 本文将为您详细讲解如何在Flutter中优雅地实现多渠道打包,包括环境搭建、配置文件修改、打包命令和示例说明等步骤。 环境搭建 在开始实现多渠道打包之前,需要先在Flutter项目中添加flutter_channel插件。可以按照以下步骤进行操作: 在pubspec.yaml文件中添加flutter…

    other 2023年5月6日
    00
  • Java方法递归的形式和常见递归算法(方法递归结合File类查找文件)

    Java方法递归是指方法调用自身的过程,递归方法可以让程序更加简单、易于理解。在进行递归过程中,只要适时停止递归或使用递归较少,递归方法就会非常实用。 Java方法递归的形式 在Java方法递归中,最基本的形态是一个方法不断地调用自己。具体来说,递归方法由两个部分组成: 递归出口(递归终止条件):一个递归方法需要满足一个条件,以便停止递归并控制方法的执行。因…

    other 2023年6月27日
    00
  • apache php mysql开发环境安装教程

    Apache、PHP、MySQL是常见的Web开发环境,下面将会详细讲解在Windows系统上搭建这个环境的完整攻略。 安装Apache 下载Apache服务器,可以从Apache官网中下载到最新的稳定版:http://httpd.apache.org/。 运行安装包,一路默认即可,可以自定义安装目录,然后点击Install完成安装。 安装完成后,运行Apa…

    other 2023年6月26日
    00
  • css样式底部平均分布

    CSS样式底部平均分布 在网站开发过程中,我们经常需要将一排元素展示在页面底部,比如页脚链接、社交媒体图标等等。而如果我们希望这些元素在底部平均分布,应该怎么做呢? 下面,我们来介绍一种简单易用的CSS样式,可以轻松地实现底部元素平均分布的效果。 使用Flex布局 CSS3引入的弹性盒子布局(Flexbox)为我们提供了更加便捷的布局方式。下面的代码片段展示…

    其他 2023年3月28日
    00
  • Mysql 5.6添加修改用户名和密码的方法

    当需要更改 MySQL 数据库的用户名和密码时,可以使用以下步骤: 步骤1:通过root用户登录到MySQL服务器 首先,使用 root 用户身份登录到 MySQL 服务器: $ mysql -u root -p 在登录时需要输入 root 用户的密码。 步骤2:将用户名和密码更新到mysql.user表中 接下来,进入 MySQL 命令行界面,并选择要更改…

    other 2023年6月27日
    00
  • Linux系统中如何实现远程控制

    在Linux系统中,我们可以使用远程控制工具来实现远程控制。下面将详细讲解两种实现远程控制的方法,包括SSH和VNC。 1. SSH远程控制 1.1 什么是SSH SSH是一种广泛用于远程登录和传输数据的加密协议。它可以通过互联网或本地网络连接到远程计算机,使用户可以通过命令行界面(CLI)进行操作。 1.2 基本用法 使用SSH需要在本地计算机上安装SSH…

    other 2023年6月27日
    00
  • Win10 20H1快速预览版18894怎么手动更新升级?

    要手动更新升级Win10 20H1快速预览版18894,可以根据以下步骤进行操作: 打开系统设置:在任务栏输入“设置”,点击弹出的“设置”图标,或按下Win键+I键快捷打开系统设置页面。 进入“更新和安全”页面:在设置页面中,点击“更新和安全”选项,进入系统更新相关设置页面。 手动检查更新:在更新和安全页面中,点击“检查更新”按钮,系统将开始手动检查是否有可…

    other 2023年6月27日
    00
  • html5原生拖拽/拖放(drag&drop)详解

    HTML5原生拖拽/拖放(drag&drop)详解 HTML5为Web开发者带来了丰富的应用场景和功能实现,其中之一就是拖放(drag and drop)功能。通过拖放,用户可以更加方便快捷地实现一些操作,如拖动元素进行排序或移动它们到其他地方,或者拖动文件到网页中进行上传等。 拖拽操作的基本流程 拖放操作的基本流程分为以下四步: 用户触发拖放事件(…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部