首先uni-app提供的数据缓存Storage分四种模式:
一种是set(用于存储数据)、一种是get(用于获取数据)、一种是remove
(用于移除指定数据)、最后一种是clear(清除缓存数据)
然后区分:带Sync字段是同步的,没有带的是异步。
查看缓存数据的界面面板:
谷歌浏览器--开发者工具--Application--Storage--Local Storage
上面这个面板就是进行查看数据缓存相关信息的。
下面进行异步数据缓存展示,就是没带Sync字段的,顺序:先有set模式-->get模式-->remove模式-->clear模式(一般很少用)
首先准备三个按钮,分别对应上面的三个功能:存储数据、获取数据、移除数据
<view class="" >
<button type="default" @tap="setStorage()">存储数据</button>
<button type="primary" @tap="getStorage()">获取数据</button>
<button type="warn" @tap="removeStorage()">移除数据</button>
</view>
方法定义:
methods: {
setStorage:function(){//存储数据
},
getStorage:function(){//获取数据
},
removeStorage:function(){//移除数据
}
}
功能实现:
(1)存储数据
uni.setStorage(OBJECT)
这个对象里面传入一个key和一个data,你可以理解为键值对的形式,然后一个回调函数success
setStorage:function(){//存储数据
uni.setStorage({
key:"student",
data:{
name:'覃覃',
stu_id:1903010331,
class:'19计应3-3班',
age:22,
school:'sziit'
},
success:function(){
console.log('数据存储成功!')
}
})
},
当我们点击“存储数据”的这个按钮时,我们来到面板就会看到数据已经缓存成功呈现在面板上。而key为键,data为值。
(2)获取数据
uni.getStorage() 用于获取缓存的数据
这里的key对应setStorage的key,然后再success回调函数里面接受res返回数据的结果,控制台输出。
getStorage:function(){//获取数据
uni.getStorage({
key:"student",
success:function(res){
console.log('获取数据成功',res)
}
})
},
(3)移除数据
一般用于移除整个数据。
removeStorage:function(){//移除数据
uni.removeStorage({
key:'student',
success:function(){
console.log('移除数据成功!')
}
})
}
回到数据缓存的面板查看,发现key为"student"的字段已经完整移除。
同步和异步相比,同步操作数据更为方便,语句更为简洁,更为灵活。
带Sync的,不需要指定特定的键(key)和值(data)。
以setStorageSync(key,value)为例子,同步可以直接接受参数,第一个参时就是key键,第二个参数为value值。
将上面的例子改成同步,效果是一样的。
setStorage:function(){//存储数据
const obj = {'name':'qfb','age':22}
uni.setStorageSync('student',obj)
},
getStorage:function(){//获取数据
const res = uni.getStorageSync('student')
console.log(res)
},
removeStorage:function(){//移除数据
uni.removeStorageSync('student')
}
数据缓存:
获取数据: