uniapp
一,通常 在/page/index/index的onload都開始執行了,onlaunch還沒執行完。怎么去控制這個順序呢?
在網上百度到這個方法:
1,在main.js中添加:
Vue.prototype.$onLaunched = new Promise(resolve => {
Vue.prototype.$isResolve = resolve
})
2,在app.vue onlaunch執行完的地方,加上:this.$isResolve()
3,在index.vue里
async onLoad(option) {
// 等待onlauch執行完畢
await this.$onLaunched;
console.log("onlauch加載完成,進入onload")
// ...onload要執行的代碼
}
二,我在測試中發現,從模板消息、掃碼等特殊場景進入小程序指定頁面並帶有參數時,頁面的onload取不到options
解決方法:getCurrentPages()[0].options 可以拿到參數
但是又發現,從別的頁面wx.navigateTo過來的,帶參數的,getCurrentPages()[0].options又拿不到了
所以,最后是這樣寫的
async onLoad(options) {
// 等待onlauch執行完畢
await this.$onLaunched;
var option=!!options?options:getCurrentPages()[0].options
}