uni-app 加載順序及獲取參數相關的兩個問題


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

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM