什么是globalData
微信小程序app.js中的globalData存储的是全局数据,如果希望在各个页面之间共同使用某些信息,并且可以对共享数据进行修改设置,以便于其他页面根据数据变化进行对应的调整,最好使用globalData。
全局变量(globalData)
- 保存一些可能涉及安全类的数据,例如资源类,每次需要很准确的,就建议用全局变量
- 全局变量每次关闭小程序重新打开的时候,都会进行初始化更新
- 点击编译器的编译,也会被清空,然后初始化
globalData的用法
app.js中:
1 2 3 4
| globalData: { audioList: [] }
|
index.js中对全局变量的取用和保存操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| const app = getApp() Page({ data: { sortList: [] },
onLoad() { if (app.globalData.audioList.length > 0) { this.setData({ sortList: app.globalData.audioList }) } },
getAudioList() { let audio = { title: "神秘岛旅梦", type: "美眠", intro: "带你且听风吟", label: "睡眠", mold: "sleep", new: "1", pro: "1", beginDate: { "$date": "2021-10-08T19:58:18.014Z" } } let list = app.globalData.audioList list.push(audio) }, })
|
使用globalData
根据自己的需要设置任何数据。在app.js中读取globalData使用this就可以了,若要修改globalData,直接对其赋值即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| App({ globalData: { userInfo: [{ userName: '张无忌' }, { age: 20 } ], book: '倚天屠龙记' }, onLoad: function() { console.log(this.globalData.book); this.globalData.book = '神雕侠侣' } })
|
在其他页面读取以及修改globalData。不论是读取还是修改,首先需要在应用的页面js文件中,引用app()实例。
1 2 3 4 5 6 7 8 9
| const app = getApp(); Page({ onLoad: function() { console.log(app.globalData.book); app.globalData.book = '射雕英雄传'; } })
|
缓存(StorageSync)本地存储
- 小程序中的本地存储有同步功能,可用于保存用户信息(用户登录后的一些基本信息)
- 缓存的更新需要使用setStorageSync方法。
StorageSync的用法
- 存入缓存
var addressList= wx.setStorageSync(key, value)
- 取出缓存
var addressList= wx.getStorageSync(key)
- 清除缓存
wx.removeStorageSync(key)
- 清除所有缓存
wx.clearStorageSync()
参考文章