当前位置: 首页 > news >正文

Uniapp:本地存储

目录

  • 一、概述
  • 二、分类
  • 三、同步存储:setStorageSync
    • 3.1 方法
    • 3.2 案例
      • 3.2.1 存储
      • 3.2.2 获取
      • 3.2.3 获取storage
      • 3.2.4 删除
      • 3.2.5 清空
  • 四、异步存储:setStorage
    • 4.1 方法
    • 4.2 案例
      • 4.2.1 存储数据
      • 4.2.2 获取数据
      • 4.2.3 获取storage详情
      • 4.2.4 删除
      • 4.2.5 清空


一、概述

在Uniapp项目开发的过程中,需要再本地存储一些数据,例如Token、用户信息等,当在断网的情况下还需要把数据先存储到本地,等网络恢复之后再进行上传。

二、分类

Uniapp本地存储提供了两种方式:同步存储和异步存储,主要区别是:

  • 异步存储(setStorageSync):不管有没有成功都会继续往下执行
  • 同步存储(setStorage):只有存储成功之后才会继续往下执行

三、同步存储:setStorageSync

3.1 方法

方法概述
uni.setStorageSync(key, data)将数据同步保存在本地缓存中,key为字符串类型,表示要保存数据的键,data可以是任何支持JSON序列化的数据类型
uni.getStorageSync(key)从本地缓存中同步获取指定key的数据
uni.getStorageInfoSync()同步获取当前 storage 的相关信息
uni.removeStorageSync(key)从本地缓存中同步移除指定key的数据
uni.clearStorageSync()清空本地缓存中所有数据

3.2 案例

3.2.1 存储

存储对象或者数组的时候,需要对数据进行序列化

let obj = {
	id:'1',
	name:"wwww",
	list:[{
		id:'2',
		name:"eeee",
		list:[{
			id:'3',
			name:"tttt",
		}]
	}]
};
let item = JSON.stringify(obj);
uni.setStorageSync('objData', item);

3.2.2 获取

获取对象或者是数组的时候,需要对数据进行反序列化

let data = uni.getStorageSync('objData')
console.log(JSON.parse(data));

3.2.3 获取storage

success 返回参数说明

参数名类型说明
keyArray<String>当前 storage 中所有的 key
currentSizeNumber当前占用的空间大小, 单位:kb
limitSizeNumber限制的空间大小, 单位:kb
uni.getStorageInfo({
	success: function (res) {
		console.log(res.keys);
		console.log(res.currentSize);
		console.log(res.limitSize);
	}
});

3.2.4 删除

del(){
	uni.removeStorageSync('objData')
}

3.2.5 清空

delAll(){
    uni.clearStorageSync()
}

四、异步存储:setStorage

4.1 方法

方法概述
uni.setStorage(Object)将数据异步保存在本地缓存中
uni.getStorage(Object)从本地缓存中异步获取指定key的数据
uni.getStorageInfo(Object)异步获取当前 storage 的相关信息
uni.removeStorage(Object)从本地缓存中异步移除指定key的数据
uni.clearStorage()清理本地数据缓存

4.2 案例

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

4.2.1 存储数据

onShow(){
	let obj = {
		id:'1',
		name:"wwww",
		list:[{
			id:'2',
			name:"eeee",
			list:[{
				id:'3',
				name:"tttt",
			}]
		}]
	};
	uni.setStorage({
		key: 'storage_key',
		data: obj,
		success: function(){
			console.log('success'); //成功
		},
		fail:function(){
			console.log("fail");	//失败
		},
		complete:function(){
			console.log("complete");//成功失败都调
		}
	});
},

4.2.2 获取数据

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

success 返回参数说明

参数名类型说明
keyString本地缓存中的指定的 key
get(){
	uni.getStorage({
		key: 'storage_key',
		success: function (res) {
			console.log(res.data);
		}
	});
},

4.2.3 获取storage详情

参数名类型必填说明
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数名类型说明
keyArray<String>当前 storage 中所有的 key
currentSizeNumber当前占用的空间大小, 单位:kb
limitSizeNumber限制的空间大小, 单位:kb
uni.getStorageInfo({
	success: function (res) {
		console.log(res.keys);
		console.log(res.currentSize);
		console.log(res.limitSize);
	}
});

4.2.4 删除

参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
uni.removeStorage({
	key: 'storage_key',
	success: function (res) {
		console.log('success');
	}
});

4.2.5 清空

uni.clearStorage();

相关文章:

  • 卫星电话扬帆智慧海洋,构筑蓝海通信新生态
  • 48V/2kW储能电源纯正弦波逆变器详细设计方案-可量产
  • 【7】深入学习Buffer缓冲区-Nodejs开发入门
  • CS5346 - Annotation in Visualization (可视化中的注释)
  • 【Python爬虫】简单案例介绍3
  • 详细解读 box-sizing: border-box;
  • 大模型——Crawl4AI入门指南
  • 【高性能缓存Redis_中间件】三、redis 精通:性能优化与生产实践
  • 从零开始:前端开发者的SEO优化入门与实战
  • 如何在服务器上搭建mail服务器邮件服务器
  • obsidian写文章的图床设置方法
  • 应用分享:基于 Grounding DINO 的智能膳食助手如何推进健康信息学发展
  • Qt样式表(窗口、按钮之类,有图片和代码详细注释)
  • Windows单机模拟MySQL主从复制
  • Spring MVC 全栈指南:RESTful 架构、核心注解与 JSON 实战解析
  • 什么是Lodash
  • Linux 常用命令 - ip 【显示和配置网卡参数】
  • 【深度学习】自定义实现DataSet和DataLoader
  • zlm启用webrtc交叉编译指南
  • [免费]SpringBoot+Vue外卖(点餐)平台系统【论文+源码+SQL脚本】
  • 同比增长4.2%!一季度全国财政支出持续增长
  • 14岁男孩膀胱内现52颗磁力珠,专家呼吁关注青春期少年心理健康
  • 上海首批7家高质量孵化器中6家由民营机构运营,在孵企业数超200家
  • “努力稳住外贸基本盘”,浙江省委书记、省长接连调研外贸
  • 张家界去年净亏损扩至5.82亿,股票简称将加ST