微信小程序onLoad与onLaunch执行顺序的统一
微信小程序的app.js
中的onLaunch()
函数与首页的onLoad()
函数执行顺序是不确定的,这取决于小程序初次运行时是app.js
先加载至onLaunch()
还是首页先加载至onLoad()
。
本文将上述两个函数的执行顺序固定为先onLaunch()
,后onLoad()
。
Step 1
在首页js文件中,声明如下定义
javascript
const app = getApp();
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
app.callBack = (res) => {
this.onLoadAL()
}
},
/**
* 生命周期函数--onLaunch之后执行的监听页面加载函数
*/
onLoadAL: function (e) {
//这里填写在onLaunch()执行完毕后,要在onLoad()中执行的内容
},
Step 2
在app.js
的onLaunch()
中,声明函数
javascript
var _this = this
const waitOnLoad=function(){
const o = setInterval(function () {
if (_this.callBack) {
_this.callBack()
clearInterval(o)
}
}, 10)//这里设置每10毫秒检查一次callBack函数是否从onLoad()注入
}
然后在onLaunch()
执行完毕时,调用waitOnLoad()
即可。 对于每次小程序非初次执行时主页onLoad()
就不难写了,这里不再赘述。