Skip to content

微信小程序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.jsonLaunch()中,声明函数

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()就不难写了,这里不再赘述。