一般用来保存页面公开数据或者页面搜索记录等数据,用户登录信息也存在这里面
uni.setStorage(OBJECT)异步接口
这个接口对应uni.getStorage,一个设置,一个获取
uni.setStorageSync(KEY,DATA)同步接口
这个接口对应 uni.getStorageSync,一个设置,一个获取
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容(如果存的值key是一样的,第二个value会覆盖第一个value)
这两个方法最大的区别是,异步接口是返回一个success,同步的接口是定义变量
在首页测试uni.setStorage异步接口
onLoad() {
// setTimeout(()=>{},1500)
uni.setStorage({
key: "demo",
data:112,
success:res=>{
console.log(res);
}
})
},
设置成功
测试同步接口uni.setStorageSync(KEY,DATA)
这个一般用的多一些
onLoad() {
uni.setStorageSync("my_key", "hello");
},
[之前设置的值依然在,重新刷新页面甚至重新打开浏览器都还在]
获取之前存储的值
onLoad() {
uni.setStorageSync("my_key", "hello");
let mykey = uni.getStorageSync("my_key");
console.log(mykey);
},
获取存储的值既可以在当前页面,也可以在其他页面
上面是在当前页面存储和获取,现在测试在user页面获取首页存储的值,将获取缓存数据的方法写在onload中,一点开页面就能被自动执行
onLoad(){
uni.setTabBarBadge({
// 这是要显示数字的tabbar的索引,给哪一项加
index:2,
text:"3"
}),
uni.showTabBarRedDot({
index:1
})
let key = uni.getStorageSync("my_key")
console.log(key);
}
如果保存的值是一个数组或者对象,也能拿到值,如果是原生的写法,是不能存储数组或对象的,存进去需要用JSON.stringify()进行转换
uni.setStorageSync("my_key", {name:"张三",age:20});
uni.removeStorageSync(KEY)
uni.clearStorageSync()
从本地缓存中同步移除指定 key。删除保存的缓存数据
这两个api的区别是remove是清除某一项,clear是全部清空
写一个按钮,用点击事件清理缓存数据
onLoad() {
uni.setStorageSync("my_key", {name:"张三",age:20});
uni.setStorageSync("my_key1", {name:"李四",age:30});
let mykey = uni.getStorageSync("my_key1");
console.log(mykey);
},
methods: {
removeBtn(){
uni.removeStorageSync("my_key")
},
点击按钮之前
点击按钮之后,有一条数据被删掉了