首页 > 其他分享 >一看就懂的 UniApp 数据缓存 API:一篇文章带你玩转本地存储!

一看就懂的 UniApp 数据缓存 API:一篇文章带你玩转本地存储!

时间:2024-11-17 19:16:14浏览次数:3  
标签:UniApp 存储 缓存 console log err API uni

UniApp 数据缓存 API 全面解析与最佳实践

在多平台跨端开发中,数据缓存是不可或缺的功能。UniApp 提供了一套强大的数据缓存 API,支持本地数据的存储、读取、删除和管理,适用于多种开发场景。本文将详细介绍这些 API 的功能、参数及使用方法,并分享一些实际开发中的应用技巧。


数据缓存 API 总览

UniApp 提供了两类缓存操作:同步操作异步操作。下表列出了主要方法及其功能:

功能同步 API异步 API
存储数据uni.setStorageSyncuni.setStorage
获取数据uni.getStorageSyncuni.getStorage
移除指定数据uni.removeStorageSyncuni.removeStorage
清除所有缓存uni.clearStorageSyncuni.clearStorage
获取缓存信息uni.getStorageInfoSyncuni.getStorageInfo

API 参数说明

以下是数据缓存 API 的详细参数及说明,适用于所有异步操作方法:

参数名类型必填说明
keystring缓存的键名,用于标识数据
dataany要存储的数据,适用于 setStorage 系列
successFunction操作成功时的回调函数
failFunction操作失败时的回调函数
completeFunction操作完成时的回调函数,无论成功或失败均触发

注意: data 参数仅适用于存储操作方法,如 uni.setStorageuni.setStorageSync


方法详解与代码示例

1. 存储数据

异步存储数据:uni.setStorage
uni.setStorage({
  key: 'userInfo',
  data: { name: 'Alice', age: 25 },
  success: () => {
    console.log('数据存储成功!');
  },
  fail: (err) => {
    console.error('存储失败:', err);
  },
  complete: () => {
    console.log('存储操作完成');
  },
});
同步存储数据:uni.setStorageSync
try {
  uni.setStorageSync('userInfo', { name: 'Alice', age: 25 });
  console.log('同步存储成功!');
} catch (err) {
  console.error('同步存储失败:', err);
}

2. 读取数据

异步读取数据:uni.getStorage
uni.getStorage({
  key: 'userInfo',
  success: (res) => {
    console.log('获取的数据:', res.data);
  },
  fail: (err) => {
    console.error('获取数据失败:', err);
  },
  complete: () => {
    console.log('数据获取完成');
  },
});
同步读取数据:uni.getStorageSync
try {
  const data = uni.getStorageSync('userInfo');
  console.log('同步获取的数据:', data);
} catch (err) {
  console.error('同步获取失败:', err);
}

3. 删除数据

异步删除指定数据:uni.removeStorage
uni.removeStorage({
  key: 'userInfo',
  success: () => {
    console.log('数据移除成功!');
  },
  fail: (err) => {
    console.error('移除失败:', err);
  },
  complete: () => {
    console.log('移除操作完成');
  },
});
同步删除指定数据:uni.removeStorageSync
try {
  uni.removeStorageSync('userInfo');
  console.log('同步移除成功!');
} catch (err) {
  console.error('同步移除失败:', err);
}

4. 清除所有缓存

异步清除缓存:uni.clearStorage
uni.clearStorage({
  success: () => {
    console.log('缓存已清除!');
  },
  fail: (err) => {
    console.error('清除失败:', err);
  },
  complete: () => {
    console.log('清除缓存操作完成');
  },
});
同步清除缓存:uni.clearStorageSync
try {
  uni.clearStorageSync();
  console.log('同步清除缓存成功!');
} catch (err) {
  console.error('同步清除缓存失败:', err);
}

5. 获取缓存信息

异步获取缓存信息:uni.getStorageInfo
uni.getStorageInfo({
  success: (res) => {
    console.log('所有键名:', res.keys);
    console.log('当前缓存大小:', res.currentSize, 'KB');
    console.log('最大允许缓存大小:', res.limitSize, 'KB');
  },
  fail: (err) => {
    console.error('获取缓存信息失败:', err);
  },
  complete: () => {
    console.log('缓存信息获取完成');
  },
});
同步获取缓存信息:uni.getStorageInfoSync
try {
  const info = uni.getStorageInfoSync();
  console.log('所有键名:', info.keys);
  console.log('当前缓存大小:', info.currentSize, 'KB');
  console.log('最大允许缓存大小:', info.limitSize, 'KB');
} catch (err) {
  console.error('同步获取缓存信息失败:', err);
}

实用技巧与注意事项

  1. 缓存大小限制

    • 小程序端缓存通常有限制。例如,微信小程序最大允许 10MB 缓存。
    • 可通过 uni.getStorageInfo 查看当前缓存使用情况,并定期清理不必要的数据。
  2. 数据存储格式

    • 缓存数据可以是任意类型,但建议复杂对象使用 JSON 格式存储:
      uni.setStorageSync('config', JSON.stringify({ theme: 'dark', lang: 'en' }));
      const config = JSON.parse(uni.getStorageSync('config'));
      
  3. 异步 vs. 同步

    • 异步方法:适用于耗时任务,不阻塞主线程。
    • 同步方法:适用于初始化加载等必须即时完成的操作,但可能影响性能。
  4. 跨平台一致性

    • 不同平台对缓存的实现可能略有差异(如缓存大小限制),在开发中需充分测试以确保功能一致。

总结

UniApp 的数据缓存 API 提供了高效、灵活的本地存储解决方案,适用于跨端开发中的各种场景。无论是用户数据管理还是应用配置保存,这些方法都能帮助开发者优化性能和用户体验。熟练掌握这些 API,可以为你的应用开发增添更多可能性。

希望本文能为你提供帮助,欢迎分享你的开发经验或提出疑问!

标签:UniApp,存储,缓存,console,log,err,API,uni
From: https://blog.csdn.net/weixin_43716733/article/details/143836519

相关文章

  • 三周精通FastAPI:42 手动运行服务器 - Uvicorn & Gunicorn with Uvicorn
    官方文档:ServerWorkers-GunicornwithUvicorn-FastAPI使用 fastapi运行命令¶可以直接使用fastapirun命令来启动FastAPI应用:fastapirunmain.py如创建openapi.py文件:fromfastapiimportFastAPIapp=FastAPI(openapi_url="/api/v1/openapi.json")@app.g......
  • 三周精通FastAPI:41 部署:FastAPI版本和HTTPS概念
    官方文档:https://fastapi.tiangolo.com/zh/deployment/versions/关于FastAPI版本¶FastAPI 已在许多应用程序和系统的生产环境中使用。并且测试覆盖率保持在100%。但其开发进度仍在快速推进。经常添加新功能,定期修复错误,并且代码仍在持续改进。这就是为什么当前版本仍......
  • 三周精通FastAPI:39 用FastAPI CLI命令行程序管理FastAPI项目
    官方文档:https://fastapi.tiangolo.com/zh/fastapi-cli/FastAPICLI¶FastAPICLI 是一个命令行程序,你可以用它来部署和运行你的FastAPI应用程序,管理你的FastAPI项目,等等。当你安装FastAPI时(例如使用 pipinstallFastAPI 命令),会包含一个名为 fastapi-cli的软件包......
  • 行驶证 OCR 识别 API 接口用PHP如何调用
    行驶证OCR识别接口是一种极为强大的工具。其强大之处在于,当用户传入行驶证照片后,它能够以令人惊叹的速度和极高的准确性,快速准确地识别出行驶证上的所有文字信息。识别完成后,它会将这些文字信息以高度结构化的形式进行返回。以下是行驶证OCR识别API接口用PHP如何调用的......
  • 行驶证 OCR 识别 API 接口用C#如何调用
    具体来说,行驶证OCR识别接口具备强大的功能,可以准确识别包括所有人、品牌型号、住址、车牌号、发动机号码、车辆识别代号、注册日期、发证日期等多个至关重要的字段信息。在实际应用中,该接口通过对行驶证照片进行全面而深入的智能分析,能够极为精准地提取出上述的这些信息。并......
  • 对比 win32 linux原生 和 qt 的 所有 socket api
    以下是Win32原生、Linux原生和Qt的SocketAPI对比,包括TCP和UDP的功能、特性及优缺点。我们从核心API、特性、性能和常见应用等方面进行分析。1.核心API对比1.1Socket创建与初始化操作Win32(原生)Linux(原生)Qt(跨平台)创建套接字socket()socket()......
  • 阿里巴巴搜索API:电商商品信息实时更新的工具
    在电子商务领域,商品信息的实时更新对于保持竞争力至关重要。阿里巴巴提供的搜索API,特别是智能开放搜索OpenSearch,为电商平台提供了强大的工具,以实现商品信息的实时更新和高效管理。本文将探讨阿里巴巴搜索API的功能、优势,并提供代码示例,展示如何利用这些API进行商品信息的实时......
  • 在后端开发中,如何设计RESTful API接口?
    在后端开发中,设计RESTfulAPI接口是一个关键步骤,它直接影响到应用程序的可维护性、可扩展性和用户体验。以下是设计RESTfulAPI接口的详细指南:1.设计API端点RESTfulAPI的端点通常基于资源名称,并使用HTTP方法来表示对资源的操作。例如:获取所有用户:GET/users获取单个用户:GE......
  • uniapp同城社区交友 仿小红书 APP小程序源码 含后台管理和网页端
    注意(预防被骗)本程序仅在破晓店铺(https://shop.abyssdawn.com/)、破晓一代网络科技淘宝店出售其余地方均为骗子。关于本程序本程序适用于各种同城社区交友类产品,例如同城相亲、同城找搭子、仿小红书生活笔记、同城活动动态等等。界面美观功能齐全,代码简洁优雅。带后台管理和网......
  • 什么?掌握 UniApp 页面路由竟如此简单!
    引言UniApp是一个跨平台的开发框架,提供了很多实用的API来帮助开发者处理跨平台的需求,尤其是页面路由相关的功能。页面路由API使得页面跳转、返回等操作变得更加简单且高效,特别适用于在小程序、H5、App等平台之间进行页面管理。本文将详细介绍UniApp提供的页面路由......