首页 > 其他分享 >uniapp 将数据存储在本地缓存setStorage及从本地缓存中异步获取getStorage

uniapp 将数据存储在本地缓存setStorage及从本地缓存中异步获取getStorage

时间:2024-09-11 10:47:18浏览次数:10  
标签:uniapp 缓存 本地 Next HarmonyOS 兼容性 key uni

一、uni.setStorage(OBJECT)

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 参数说明

参数名 类型 必填 说明
key String 本地缓存中的指定的 key
data Any 需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

#参数 HarmonyOS Next 兼容性

名称 HarmonyOS Next 兼容性
options -
名称 HarmonyOS Next 兼容性
key -
data -
success -
fail -
complete -

示例

uni.setStorage({
	key: 'storage_key',
	data: 'hello',
	success: function () {
		console.log('success');
	}
});

注意

  • uni-uni_dcloud-dcloud_为前缀的key,为系统保留关键前缀。如uni_deviceIduni_id_token,请开发者为key命名时避开这些前缀。

二、uni.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

参数说明

参数 类型 必填 说明
key String 本地缓存中的指定的 key
data Any 需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
try {
	uni.setStorageSync('storage_key', 'hello');
} catch (e) {
	// error
}

三、uni.getStorage(OBJECT)

从本地缓存中异步获取指定 key 对应的内容。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 参数说明

参数名 类型 必填 说明
key String 本地缓存中的指定的 key
success Function 接口调用的回调函数,res = {data: key对应的内容}
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

#参数 HarmonyOS Next 兼容性

名称 HarmonyOS Next 兼容性
options -
名称 HarmonyOS Next 兼容性
key -
success -
fail -
complete -

#GetStorageSuccess 的属性值

名称 HarmonyOS Next 兼容性
data -

success 返回参数说明

参数 类型 说明
data Any key 对应的内容

示例

uni.getStorage({
	key: 'storage_key',
	success: function (res) {
		console.log(res.data);
	}
});

四、uni.getStorageSync(KEY)

从本地缓存中同步获取指定 key 对应的内容。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

参数说明

参数 类型 必填 说明
key String 本地缓存中的指定的 key

#参数 HarmonyOS Next 兼容性

名称 HarmonyOS Next 兼容性
key -

示例

try {
	const value = uni.getStorageSync('storage_key');
	if (value) {
		console.log(value);
	}
} catch (e) {
	// error
}

五、uni.getStorageInfo(OBJECT)

异步获取当前 storage 的相关信息。

平台差异说明

App H5 微信小程序 支付宝小程序 百度小程序
HBuilderX 2.0.3+

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 参数说明

参数名 类型 必填 说明
success Function 接口调用的回调函数,详见返回参数说明
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

#参数 HarmonyOS Next 兼容性

名称 HarmonyOS Next 兼容性
options -
名称 HarmonyOS Next 兼容性
success -
fail -
complete -

#GetStorageInfoSuccess 的属性值

名称 HarmonyOS Next 兼容性
keys -
currentSize -
limitSize -

success 返回参数说明

参数 类型 说明
keys Array<String> 当前 storage 中所有的 key
currentSize Number 当前占用的空间大小, 单位:kb
limitSize Number 限制的空间大小, 单位:kb

示例

uni.getStorageInfo({
	success: function (res) {
		console.log(res.keys);
		console.log(res.currentSize);
		console.log(res.limitSize);
	}
});

六、uni.getStorageInfoSync()

同步获取当前 storage 的相关信息。

平台差异说明

App H5 微信小程序 支付宝小程序 百度小程序
HBuilderX 2.0.3+

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

#返回值 HarmonyOS Next 兼容性

类型 描述
GetStorageInfoSuccess uni.getStorageInfo成功回调参数
名称 HarmonyOS Next 兼容性
keys -
currentSize -
limitSize -

示例

try {
	const res = uni.getStorageInfoSync();
	console.log(res.keys);
	console.log(res.currentSize);
	console.log(res.limitSize);
} catch (e) {
	// error
}

七、uni.removeStorage(OBJECT)

从本地缓存中异步移除指定 key。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 参数说明

参数名 类型 必填 说明
key String 本地缓存中的指定的 key
success Function 接口调用的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

#参数 HarmonyOS Next 兼容性

名称 HarmonyOS Next 兼容性
options -
名称 HarmonyOS Next 兼容性
key -
success -
fail -
complete -

示例

uni.removeStorage({
	key: 'storage_key',
	success: function (res) {
		console.log('success');
	}
});

八、uni.removeStorageSync(KEY)

从本地缓存中同步移除指定 key。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

参数说明

参数名 类型 必填 说明
key String 本地缓存中的指定的 key

#参数 HarmonyOS Next 兼容性

名称 HarmonyOS Next 兼容性
key -

示例

try {
	uni.removeStorageSync('storage_key');
} catch (e) {
	// error
}

 

九、uni.clearStorage()

清理本地数据缓存。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

示例

uni.clearStorage();

 

十、uni.clearStorageSync()

同步清理本地数据缓存。

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

示例

try {
	uni.clearStorageSync();
} catch (e) {
	// error
}

 

注意

uni-app的Storage在不同端的实现不同:

  • H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
  • App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
  • 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
  • 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
  • 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
  • 百度小程序策略详见、抖音小程序策略详见
  • 非App平台清空Storage会导致uni.getSystemInfo获取到的deviceId改变

除此之外,其他数据存储方案:

  • H5端还支持websql、indexedDB、sessionStorage
  • App端还支持SQLiteIO文件等本地存储方案。

标签:uniapp,缓存,本地,Next,HarmonyOS,兼容性,key,uni
From: https://www.cnblogs.com/moranjl/p/18407846

相关文章

  • arm64高速缓存基础知识
    高速缓存的替换策略随机法:随机地确定替换的高速缓存行,由一个随机数产生器产生随机数来确认替换行FIFO法:选择最先调入的高速缓存行进行替换LRU法:最少使用的行优先替换。高速缓存的共享属性内部共享的高速缓存通常指的是CPU内部集成的高速缓存,它们最靠近CPU内核外部......
  • 使用VSCode搭建UniApp + TS + Vue3 + Vite项目
    uniapp是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、以及各种小程序。深受广大前端开发者的喜爱。uniapp官方也提供了自己的IDE工具HBuilderX,可以快速开发uniapp项目。但是很多前端的同学已经比较习惯使用VSCode去开发项目,为了开发uniapp项目......
  • framebuffer帧缓存
    1.framebufferFramebuffer(帧缓冲区)是用于存储图像数据的一块内存区域。我们可以将我们想要显示的图像数据写到framebuffer中,驱动程序每隔一段时间会自动的去读取Framebuffer中的图像数据,并根据读取到的图像数据在屏幕上显示对应的图像。2.颜色的表示 我们知道一幅图像其......
  • 解决路由缓存问题
    路由缓存问题即:当再vue3中使用带参数的路由时,随着路由跳转,组件被重新复用,不能正常执行生命周期尤其我们通常在onMounted中使用的请求的发送,那么如何解决呢1.粗暴的方法:强制替换销毁vue官方曾说,key可以强制替换一个元素或者组件,而不是复用它那么我们可以在组件中使用ke......
  • 828华为云征文|华为云Flexus X搭建借贷管理系统、二次开发借贷小程序 前端源码uniapp
    在华为云828B2B企业节的盛宴中,FlexusX实例以其卓越的算力性能和灵活的资源配置脱颖而出。对于追求极致性能、渴望在借贷管理、电商交易等场景中脱颖而出的您来说,FlexusX无疑是最佳拍档。搭载创新加速引擎,让您的自建MySQL、Redis、Nginx如虎添翼,轻松应对高并发挑战,确保业......
  • 一文学会开源图书库Koodo+Reader本地Windows电脑安装与远程访问
    文章目录前言1.KoodoReader功能特点1.1开源免费1.2支持众多格式1.3多平台兼容1.4多端数据备份同步1.5多功能阅读体验1.6界面简洁直观2.KoodoReader安装流程2.1安装Git2.2安装Node.js2.3下载koodoreader3.安装Cpolar内网穿透3.1配置公网地址3.2配置固......
  • uniapp开发H5手机内置浏览器列表页面上滑地址栏隐藏导致页面底部出现空白的解决方法
    前言:使用滚动组件一般都需要设置一个固定高度,但有些浏览器上滑会隐藏地址栏,然后窗口的windowHeight变大,滚动组件底部就出现了空白,如下图:处理这个问题,就需要再窗口尺寸变化的时候重新设置滚动组件的高度了。解决方案:使用uniapp的OnReSize生命周期中对滚动组件高度进行重新赋......
  • 本地服务调用容器(docker)注册至nacos&dubbo服务
    1.问题背景开发人员通过本地启动服务注册到nacos,调用通过容器注册到nacos的服务失败; 2.问题解决  step1:指定网络模式为主机模式(network=host)  step2:    增加暴露端口(port=xxx)  step3:    指定dubbo服务注册到注册中心的ip+port(du......
  • 使用MindFormers本地部署大模型
    MindSporeTransformers即时MindFormers套件的目标是构建一个大模型训练、微调、评估、推理、部署的全流程开发套件,提供业内主流的Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性。期望帮助用户轻松的实现大模型训练和创新研发。安装MindFormers直接使用pip安......
  • git修改本地代理
    1.本人在使用gitclone别人的写好的第三方库时遇到,fatal:unabletoconnecttogithub.com:github.com[0:20.205.243.166]:errno=Unknownerror即无法克隆GitHub上的库。2.解决思路:在一些网络环境可能会禁用GitHub需要使用的端口号,所以使用本地代理,也许可以进行克隆。3.解......