微信小程序存储更新详情
前言
1.最近在项目开发中接触到微信小程序,其中有些业务需要使用本地数据Storage,但微信官方文档没有提供直接更新存储的API。
2.wx.setStorage(Object object)可以覆盖原始数据并对其进行更新,但是当只修改对象中某个属性值时,使用这个API总感觉有点蹩脚。
3.下面,作者简单封装了一个修改Storage的方法。如果有人知道更好的方法或者我的写作方法有问题,请随时给我建议。
问题描述
小程序第一次登录需要输入账号密码,第一次成功登录后将账号和令牌保存在本地。下次启动小程序验证令牌是否过期,如果没有过期直接登录。如果令牌过期,请重新获取令牌并修改之前保存的本地令牌
常规写作
原始存储
1.根据“登录设置”键取出所有登录信息
2.获取新令牌并构建新的“登录设置”
3.调用存储集(对象对象)来保存
包更新应用编程接口
/* * *更新本地缓存数据* key:在本地缓存中指定的key * new data :要更新的内容* */const updateStorageInfo=param={ var key=param . key var new data=param . new data var tempData={ } wx . getstorage({ key : key,success(RES){ var storage=RES . data for(var prop in storage){ for(var pr in new data){ if(prop==pr){ storage[prop]=new data[pr]})失败(res)},完成(res) {param。complex (res)}})}使用updateStorageInfo API
var数据={ token : that . randomword(false,32)} util . updatestorageinfo({ key : ' loginSetting ',newData:数据,成功(RES)使用的详细说明{console.log (RES)},失败(RES) {console.log (RES)},完成(RES) {console.log (RES)}}
1.原始的loginSetting对象具有帐户和令牌属性。如果您只需要更改令牌属性。您只需要构建需要更改和更改密钥的json对象。如果需要更改任何数据,可以相应地构建json。
2.如果您更改了一个不存在的键,您将输入失败回调
实施原则
1.实现思路是根据key取出整个对象,新建一个对象,再次保存。以前,这相当于修改对象中的值。您需要提供这个对象的标识符,然后根据这个标识符在本地存储中找到这个对象。然后,将需要更改的值与之前找到的数据合并并保存。
2.根据关键字在本地搜索对象类似于用新对象匹配对象,这正是我们可以偷懒的地方。
源代码下载
源代码地址:https://github.com/SingletonH/Storage.git
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:微信小程序存储更新详情是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。