微信小程序的onLaunch,方法和onShow

在app.js里面你会发现一个onLaunch()方法,这个方法是当小程序加载完毕后就执行的方法,此外,还有一个onShow()方法,先看下面的代码

app.js

//app.js
App({
  onLaunch: function (options) {
    console.log(options);
    console.log("你好");
  },

  onShow: function (options) {
    console.log("This is the on show function");
    console.log("onShow");
    console.log(options);
  },

  globalData: {
    userInfo: null
  }
})

发现在控制台中,onLaunch和onShow方法都执行了,且二者的console.log(options)打印的是同样的东西,为啥要这样子呢?

首先onLaunch方法是在小程序加载时执行的,而onShow方法是在每次从小程序的前后台切换时都执行的,比如比点开发者工具上面的“切前台”,再点"切后台”,此时会发现控制台输出的是onShow方法里面内容,而onLaunch不再执行。

好像,手机里当你点小程序右上角的关闭按钮时,在5分钟之内再次进入该小程序的话,默认执行onShow方法,不执行onLaunch方法,好像是5分钟之内算是切换后台而已?(不是很确定)

onShow(options)

1.调用时机:小程序启动,或从后台进入前台显示时触发。如果想要在小程序每次进入到前台时都执行一些事情,那么可以将代码放在这个里面。

比如一些实时动态更新的数据,用户每次进来都要从服务器更新,那么我们就可以在这个里面做。

onHide()

调用时机:小程序被切换到后台(包括微信自身被切换到后台或者小程序暂时被切换到后台)。可以在这个方法中共做一些数据的保存。

小程序从前台进入后台时触发。

onError(String error)

小程序发生脚本错误或 API 调用报错时触发

onError:function(msg){

console.log(msg);

},

小程序出错的话,会在编辑器中自动打印出错误信息,该错误信息也可以通过onError(String error)的error参数接收并打印出来或者另作他用

来源:知了黄勇