刀飞了
刀飞了
  • 发布:2019-09-30 16:16
  • 更新:2019-09-30 17:16
  • 阅读:5172

App.vue里的onLaunch和pages里页面的onload函数,什么顺序启动?

分类:uni-app

我在做一个小程序的架子,
在onLaunch里获取一个API赋值给了单独js文件里的变量。

然后再index的onLoad里 打印这个变量,就是空的,什么都没有获取到。

在看到console.log的顺序,竟然是先执行了index.vue的onLoad,再执行了onLaunch。。

感觉不太合理啊。

2019-09-30 16:16 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

那个平台?提供可重现代码

刀飞了

刀飞了 (作者)

新建一个common.js

module.exports = {  
    MAP_GPS:{},  
      HEADER:{  
        'content-type': 'application/json'  
      },  
    // 如 : 其他一些公共的变量及函数  
    myfun : function () {  
        console.log('常用函数扩展示例');  
    }  
}

在App.vue的onLaunch里写方法。

<script>  
    import apiserver from "common.js";  
    export default {  
        onLaunch: function() {  
            console.log('App Launch');  
            // 获取GPS信息  
            uni.getLocation({  
                type:'wgs84',  
                success: (res) => {  
                            apiserver.MAP_GPS = res;  
                            console.log("App.Vue里的onLaunch方法"+apiserver.MAP_GPS.latitude);  
                }  
            });  
        },  
        onShow: function() {  
            console.log('App Show')  
        },  
        onHide: function() {  
            console.log('App Hide')  
        },  
    }  
</script>

然后再index.Vue里的onLoad()里打印

console.log("index.Vue里的onLoad方法,apiserver.MAP_GPS值="+apiserver.MAP_GPS.latitude);

最后控制台的输出顺序是

就是uni-app。做的微信小程序。

SimpleJalon

SimpleJalon - 个人承接PHP、uniapp项目,有案例,联系QQ 615773740,不接受外地工作,可付费提供技术支持。添加QQ时务必备注来意以及添加渠道,渠道可以写:`uniapp`

变量用globalData 试试

程咬金3斧头

程咬金3斧头

这与onload执行顺序没关系。是因为你在app.vue中的输出是在异步回调里。。。

  • 刀飞了 (作者)

    是的,我好想发现了这个问题。是异步的。

    2019-09-30 17:07

  • 刀飞了 (作者)

    那我如果都写到onload里,为什么在request里也是无法获取到值呢?

    2019-09-30 17:09

r***@126.com

r***@126.com

看看

该问题目前已经被锁定, 无法添加新回复