uniapp中 APP.vue中的onLaunch执行后 页面中的onload。
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
onLaunch 是应用生命周期,初始化完成时触发(全局只触发一次),
onload是页面生命周期,理论上应该先执行onLaunch 后执行页面生命周期onLoad,实际上在执行onlaunch的同时,也会执行onLoad生命周期,可能会导致一些数据加载问题。
一、main.js
// 让页面的 onLoad 在 onLaunch 之后执行
Vue.prototype.$onLaunched = new Promise(resolve => {
Vue.prototype.$isResolve = resolve
})
二、在 App.vue 的 onLaunch 中增加代码 this.$isResolve();
//app.vue生命周期中,onlaunch执行时,执行this.$isResolve()
onLaunch () {
//发送请求
uni.request({
success: loginRes => {
// 当执行完业务逻辑,需要同步onload时,调用一下
this.$isResolve()
}
})
}
三、在页面 onLoad 中增加代码 await this.$onLaunched;
//onLoad 生命周期函数前,加async/await,用此方法同步执行顺序
async onLoad() {
//async/await,当执行完APP生命周期中的onlaunch,再执行页面中的业务
await this.$onLaunched;
//执行页面中的业务代码
},
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)