在app.js中接口请求成功后设置globalData,然而在开发者工具上刷新重新编译,刚才设置的globalData就清空了?
对比storage,两者哪个更合适呀,感觉每次用getStorage去拿数据也怪尴尬的
_this.globalData.initInfo = res for (let key in res) { if (res.hasOwnProperty(key)) { wx.setStorageSync(key, res[key]) }
}) // 全局变量 globalData: { initInfo: {} } |
我也来留下我对globalData和strorage的理解吧,我想讲的是这两者保留时长的区别。
前者:当小程序进入后台一定时间或系统占用资源过高后会被销毁,所谓的后台,就是用户点击小程序左上角的关闭或按HOME键离开微信。一直到小程序被销毁后,globalData就会被清空,也就是下次打开时会被初始化。
后者:缓存可以一直存在,直到你在‘微信’-->下拉出我的小程序,或者在‘发现’-->‘小程序’,从这两处地方删除你用过的小程序,否则缓存的数据会一直在。
意思是这种方式不一定能清除掉缓存?
打错字了,‘或者’已修改为‘否则’,这种方式可以删除数据
今天也遇到这个问题, 重新编译 估计和重新进入小程序相似, 相当于刷新了一下, 全局数据肯定丢失, 在登录时 或其他地方缓存的数据需要再重新载入
编译后就会初始化数据,肯定数据会丢失的啊。不丢失只能写到缓存中
好的 感谢
看需求吧!。你如果确实需要缓存,那就用撒!!!
emmm 重点是globalData被清空了?为什么呀 还是我的写法不对
你是想每次都有值对吧!!! 那可以每次打开可以在onlaunch里面请求接口,然后赋值给globalData
成本也挺大的 哈哈 谢谢啦