首页 > 编程语言 >前端【小程序】04-小程序基础篇【生命周期】

前端【小程序】04-小程序基础篇【生命周期】

时间:2024-04-17 20:48:41浏览次数:18  
标签:生命周期 console log 04 程序 更新 版本 options

生命周期

  生命周期是一些名称固定自动执行的函数。

 页面生命周期

  • onLoad 在页面加载完成时执行,只会执行 1 次,常用于获取地址参数和网络请求
  • onShow 在页面处于可见状态时执行,常用于动态更新数据或状态
  • onReady 在页面初次渲染完成时执行,只会执行 1 次,常用于节点操作或动画交互等场景
  • onHide 在页面处于不见状态时执行,常用于销毁长时间运行的任务,如定时器

应用生命周期

  App函数的文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

  • onLaunch 小程序启动时执行 1 次,常用于小程序更新,获取启动参数,获取场景值
  • onShow 小程序前台运行时执行
  • onHide 小程序后台运行时执地

开发工具中,关闭小程序,会显示场景值查找

  

App.js

 1 App({
 2   // 小程序初始化完成时触发,全局只触发一次
 3   onLaunch(options) {
 4     // 小程序启动时会执行一次,常用于获取场景值或参数
 5     console.log("onLaunch", options);
 6     console.log("场景值", options.scene);
 7     console.log("query参数", options.query);
 8   },
 9   // 小程序启动或从后台进入前台显示时
10   onShow(options) {
11     console.log("options", options);
12     console.log("场景值", options.scene);
13     console.log("query参数", options.query);
14   },
15   // 小程序从前台进入后台时,点击关闭按钮其实也会进入后台,微信会保留几分钟
16   onHide() {
17     console.log("onHide");
18   }
19 })

小程序启动后,打印日志:

  

 

小程序更新机制

  开发者在管理后台发布新版本的小程序之后,微信客户端会有若干个时机去检查本地缓存的小程序有没有新版本,并进行小程序的代码包更新。但如果用户本地有小程序的历史版本,此时打开的可能还是旧版本。

1. 启动时同步更新

  在以下情况下,小程序启动时会同步更新代码包。同步更新会阻塞小程序的启动流程,影响小程序的启动耗时。

如果更新失败或超时,为了保障小程序的可用性,还是会使用本地版本打开。

定期检查发现版本更新

  微信运行时,会定期检查最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序,尽可能保证用户能够尽快使用小程序的最新版本。

用户长时间未使用小程序

  用户长时间未使用小程序时,为保障小程序版本的实时性,会强制同步检查版本更新,更新到最新版本后再打开小程序。

  若用户处于弱网环境、下载最新版本失败等情况下,仍会启动本地的较低版本。

2. 启动时异步更新

  即使启动前未发现更新,小程序每次冷启动时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。但当次启动仍会使用客户端本地的旧版本代码,即新版本的小程序需要等下一次冷启动才会使用。

开发者手动触发更新

  在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManager API 进行处理。在有新版本时提示用户重启小程序更新新版本。

 1 // app.js
 2 App({
 3   onLaunch() {
 4     // 小程序启动时,检查更新
 5     this.checkUpdate()
 6   },
 7   checkUpdate() {
 8     // 获取版本更新管理器
 9     const updateManager = wx.getUpdateManager()
10 
11     // 检查更新结果
12     updateManager.onCheckForUpdate(function (res) {
13       // 是否有更新
14       console.log(res.hasUpdate)
15     })
16 
17     // 监听小程序有版本更新事件
18     updateManager.onUpdateReady(function () {
19       // 客户端主动触发下载(无需开发者触发下载,只需要做引导重启的提示即可)
20       wx.showModal({
21         title: '更新提示',
22         content: '新版本已经准备好,是否重启应用?',
23         success: function (res) {
24           if (res.confirm) {
25             // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
26             updateManager.applyUpdate()
27           }
28         },
29       })
30     })
31 
32     updateManager.onUpdateFailed(function () {
33       // 新版本下载失败
34       console.log("新版本下载失败")
35     })
36   },
37 })

编译设置

  

 编译然后从新进入小程序

  

 

标签:生命周期,console,log,04,程序,更新,版本,options
From: https://www.cnblogs.com/wang1001/p/18141598

相关文章

  • delphi TApplicationEvents控件,响应程序级快捷键
    在窗体中插入TApplicationEvents控件,然后设置它的onMessage事件即可 procedureTForm1.ApplicationEventsMessage(varMsg:tagMSG;varHandled:Boolean);varAktywnaForma:TForm;begin//检查是否按下CTRL键并同时按下F7键if(Msg.wParam=VK_F7)and((......
  • 14_一键烧写QT程序到开发板
    一键烧写QT程序到开发板之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发......
  • 11_QT跨平台运行之把QT程序交叉编译到ARM开发板
    QT跨平台运行之把QT程序交叉编译到ARM开发板交叉编译QT代码步骤一:给QT程序布局,然后在构造函数添加自动设置屏幕大小的代码。代码如下:#include<QDesktopWidget>#include<QStyle>#include<QRect>QDesktopWidget*deskTopWidget=QApplication::desktop();QRectdeskRec......
  • [题解][2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛] Cute Rabbit
    题目描述有n只兔子,每个兔子上有一个数ai。要将所有兔子分为白色和绿色两堆,使所有白色兔子的数对绿色兔子取余结果相等。求绿色兔子的最大数量。题解考虑一种情况:把所有除了最小值的数都涂为绿色,此时显然满足条件。对于一般情况:可以枚举白绿兔子的分割线x。对于小于x,试将其全......
  • 运行程序时出现LeftMenu.ocx未注册或找不到控件问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个LeftMenu.ocx文件(挑选合适的版本文件)把它放入......
  • 运行程序时出现mci32.ocx未注册或控件找不到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mci32.ocx文件(挑选合适的版本文件)把它放入到......
  • 运行程序时弹出MovingChar.ocx未注册或控件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个MovingChar.ocx文件(挑选合适的版本文件)把它放......
  • 运行程序出现msadodc.ocx未注册控件无法找到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个msadodc.ocx文件(挑选合适的版本文件)把它放入......
  • 运行程序时出现mschrt20.ocx未注册找不到控件问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mschrt20.ocx文件(挑选合适的版本文件)把它放入......
  • 运行程序出现hhctrl.ocx未注册或缺少控件问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个hhctrl.ocx文件(挑选合适的版本文件)把它放入到......