用生命谱写代码的赞歌

0%

微信小程序globalData使用介绍

什么是globalData

微信小程序app.js中的globalData存储的是全局数据,如果希望在各个页面之间共同使用某些信息,并且可以对共享数据进行修改设置,以便于其他页面根据数据变化进行对应的调整,最好使用globalData。

全局变量(globalData)

  1. 保存一些可能涉及安全类的数据,例如资源类,每次需要很准确的,就建议用全局变量
  2. 全局变量每次关闭小程序重新打开的时候,都会进行初始化更新
  3. 点击编译器的编译,也会被清空,然后初始化

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"
}
}
//保存到全局变量里的 audioList 中
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.js
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
// index.js
const app = getApp();
Page({
onLoad: function() {
console.log(app.globalData.book);
app.globalData.book = '射雕英雄传';
}
})
// PS:这段时间,在开发微信小程序的过程中,出现了在app.js文件中,用this.globalData.ciku不能获取globaldata中的ciku(数组,有三百多条数据)的值,最后解决的办法是删除了数组中的一些元素。记录以下,以防下次遇到同样的问题。

缓存(StorageSync)本地存储

  1. 小程序中的本地存储有同步功能,可用于保存用户信息(用户登录后的一些基本信息)
  2. 缓存的更新需要使用setStorageSync方法。

StorageSync的用法

  1. 存入缓存

var addressList= wx.setStorageSync(key, value)

  1. 取出缓存

var addressList= wx.getStorageSync(key)

  1. 清除缓存

wx.removeStorageSync(key)

  1. 清除所有缓存

wx.clearStorageSync()

参考文章