跨平台应用开发进阶 (十) :uni-app 实现数据存储、获取和删除
一、前言
项目开发过程中,需要实现数据的全局存储、获取及删除操作。为此,阅读了 uni-app 官方文档,发现其已经内置方法实现以上功能。
二、应用示例
注⚠️:如果是同步存储、获取、删除,可以使用setStorageSync()
、getStorageSync()
、removeStorageSync()
,达到的效果是一样的。
那么,有童鞋会问setStorage()
与setStorageSync()
都可以存储全局变量,两者又有什么区别呢?如何根据不同的应用场景去应用不同方法呢?
首先,官方文档给出的方法定义如下:
从接口定义可以看出,setStorage()
异步接口可以接口调用后回调相关方法,主要是根据业务需求来判定使用哪种方法。
以 Sync(同步,同时)结尾的都是都是同步缓存,二者的区别是,异步不会阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。
通俗点说,异步就是不管保没保存成功,程序都会继续往下执行。同步是等保存成功了,才会执行下面的代码。使用异步,性能会更好;而使用同步,数据会更安全。
它们都是将数据存储在本地缓存指定的 key 中,单个 key 最大数据长度为 1MB,所有数据存储上限为 10MB。
在使用setStorageSync
和setStorage
时,发现setStorageSync
不能传入对象:
setStorageSync
只支持原生类型、Date、及能够通过JSON.stringify
序列化的对象,不能直接传入对象。否则报错:
setStorage:fail parameter error: parameter should be String instead of Object;
三、拓展阅读
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/40712995c0b6542bb7bdf24e6】。文章转载请联系作者。
评论