当小程序进入后台一定时间或系统占用资源过高后会被销毁,所谓的后台,就是用户点击小程序左上角的关闭或按HOME键离开微信。一直到小程序被销毁后,globalData就会被清空,也就是下次打开时会被初始化。
1、小程序中的本地存储有同步功能,可用于保存用户信息(用户登录后的一些基本信息)
2、缓存的更新需要使用setStorageSync方法。
1、保存一些可能涉及安全类的数据,例如资源类,每次需要很准确的,就建议用全局变量。
2、全局变量每次关闭小程序重新打开的时候,都会进行初始化更新。
3丶点击编译器的编译,也会被清空,初始化
app.js中
index.js中对全局变量的取用和保存操作:
1、存入缓存
var addressList= wx.setStorageSync(key,value);
2、取出缓存
var addressList= wx.getStorageSync(key);
3、清除缓存
wx.removeStorageSync(key);
4、清除所有缓存
wx.clearStorageSync() ;
微信小程序app.js中的globalData存储的是全局数据,如果希望在各个页面之间共同使用某些信息,并且可以对共享数据进行修改设置,以便于其他页面根据数据变化进行对应的调整,最好使用globalData。
根据自己的需要设置任何数据。在app.js中读取globalData,使用this就可以了,修改globalData,需要对其赋值就可以。
//app.js
App({
globalData: {
userInfo:[
{name:‘jack‘},
{ age: 18}
],
a:19
},
onLoad: function(){
console.log(this.globalData.a);
this.globalData.a = ‘123‘
}
})
//app.js
App({
globalData: {
userInfo:[
{name:‘jack‘},
{ age: 18}
],
a:19
},
onLoad: function(){
console.log(this.globalData.a);
this.globalData.a = ‘123‘
}
})
在其他页面读取以及修改globalData。不论是读取还是修改,首先需要在应用的页面js文件中,引用app()实例。
//index.js
var app = getApp(); //这句是引入
Page({
onLoad: function() {
console.log(app.globalData.a);
getApp().globalData.a = "王二麻子";
}
})
PS:这段时间,在开发微信小程序的过程中,出现了在app.js文件中,用this.globalData.ciku不能获取globaldata中的ciku(数组,有三百多条数据)的值,最后解决的办法是删除了数组中的一些元素。记录以下,以防下次遇到同样的问题。
原文:https://www.cnblogs.com/sjruxe/p/13392934.html