关于onload与onshow一些逻辑疑问
发布于 6 年前 作者 liaojing 1427 次浏览 来自 官方Issues

小程序onload 和 onshow是异步,但我每个页面都有获取用户的登录信息而调用接口进行操作,获取用户登录信息这步可能涉及到调用接口,如果我写在onload上,可能会导致onshow调用接口的方法还没来得及获取到用户信息就执行了,如果我把逻辑都写在onload上,后退到页面还要有部分数据要刷新状态,我又不想把逻辑全部写在onshow,这样每次后退都重新调取了数据,请问大家有什么好的见解呢

onLoad: function(options) {

    

    authorize.checkAuth(function() {

        //业务逻辑

        //请求一些一次性加载的接口        

    })

},

onShow:function(){

    //每次进来或者后退都要在确保有用户登录状态情况下请求状态数据

    this.getStatus()

}

3 回复

该首次加载的写onLoad,需要即时刷新的在onShow里面加this.onLoad()

登陆后把登陆状态放全局变量里,调用接口时候先判断全局有没有,有就可以直接获取状态了,没有再给提示让他登录。如果不想后退都再调所有接口,那就放onLoad里,再onshow时候再单独把做更改的那个属性做更改。

写在onShow中,登陆后缓存登陆状态,下次执行onShow时,判断一下登陆状态

回到顶部