小程序API —— 53 本地存储

小程序本地存储是指在小程序中使用 API 将数据存储在用户的设备上,以便小程序在运行时和下次启动时快速地读取这些数据;

小程序本地存储的 API 可以分为两类,每一类可以分为四种:

  • 同步 API:
    • 存储:wx.setStorageSync()
    • 获取:wx.getStorageSync()
    • 删除:wx.removeStorageSync()
    • 清空:wx.clearStorageSync()
  • 异步 API:
    • 存储:wx.setStorage()
    • 获取:wx.getStorage()
    • 删除:wx.removeStorage()
    • 清空:wx.clearStorage()

注意,在微信小程序中,对象类型的数据,可以直接进行存储获取,无需使用 JSON.stringify()、JSON.parse() 转换;

下面我们打开微信开发者工具来演示如何使用这八个 API:

  • 首先演示一下同步 API 用法

    • 在 pages/cate/cate.wxml 文件中添加以下代码,用于添加对应的按钮:

      <button size="mini" plain type="warn" bind:tap="setStorage">存储</button>
      <button size="mini" plain type="primary" bind:tap="getStorage">获取</button>
      <button size="mini" plain type="warn" bind:tap="removeStorage">删除</button>
      <button size="mini" plain type="primary" bind:tap="clearStorage">清空</button>
      
    • 在 pages/cate/cate.scss 文件中添加 button 的样式代码,如下:

      button {margin: 34rpx;
      }
      
    • 我们首先演示一下 同步存储 wx.setStorageSync 的功能,在 pages/cate/cate.js 文件中添加下面代码:

      Page({// 将数据存储到本地setStorage(){wx.setStorageSync('num', 1);// 存储对象类型,不需要使用 JSON.stringify 和 JSON.parse 转换wx.setStorageSync('obj', {name: 'tom', age: 10})}
      }
    • 接着点击保存按钮,在右下角选择【storage】,可以看到保存到本地的数据,如下:

      在这里插入图片描述

    • 接着在 pages/cate/cate.js 文件中添加同步获取本地数据的代码,如下:

      Page({// 将数据存储到本地getStorage(){const num = wx.getStorageSync('num');const obj = wx.getStorageSync('obj');console.log(num);console.log(obj);}
      }
    • 点击获取按钮,可以在 console 区域中看到打印的信息,如下:

      在这里插入图片描述

    • 接着在 pages/cate/cate.js 文件中添加同步删除本地数据的代码,如下:

      Page({// 删除本地存储的数据removeStorage(){wx.removeStorageSync('num');}
      }
    • 当点击删除按钮时,可以看到 storage 中存储的 num 数据被清空,如下:

      在这里插入图片描述

    • 接着在 pages/cate/cate.js 文件中添加同步清空本地数据的代码,如下:

      Page({// 清空本地存储的全部数据clearStorage(){wx.clearStorageSync();}
      }
    • 当点击清空按钮时,可以看到 storage 区域中保存的两个数据都被清空了,如下:

      在这里插入图片描述

  • 接着演示一下异步 API 用法

    • 在 pages/cate/cate.wxml 文件中添加以下代码,用于添加对应的按钮:

      <button size="mini" plain type="warn" bind:tap="setStorage">存储</button>
      <button size="mini" plain type="primary" bind:tap="getStorage">获取</button>
      <button size="mini" plain type="warn" bind:tap="removeStorage">删除</button>
      <button size="mini" plain type="primary" bind:tap="clearStorage">清空</button>
      
    • 在 pages/cate/cate.scss 文件中添加 button 的样式代码,如下:

      button {margin: 34rpx;
      }
      
    • 我们首先演示一下 异步存储 wx.setStorage 的功能,在 pages/cate/cate.js 文件中添加下面代码:

      Page({// 将数据存储到本地setStorage(){wx.setStorage({key: 'num', data: 1});// 存储对象类型,不需要使用 JSON.stringify 和 JSON.parse 转换wx.setStorage({key: 'obj', data: {name: 'tom', age: 10}});}
      }
    • 接着点击保存按钮,在右下角选择【storage】,可以看到保存到本地的数据,如下:

      在这里插入图片描述

    • 接着在 pages/cate/cate.js 文件中添加异步获取本地数据的代码,如下:

      Page({// 获取本地存储的数据async getStorage(){const {data} = await wx.getStorage({key:'obj'});console.log(data);}
      }
    • 点击获取按钮,可以在 console 区域中看到打印的信息,如下:

      在这里插入图片描述

    • 接着在 pages/cate/cate.js 文件中添加异步删除本地数据的代码,如下:

      Page({// 删除本地存储的数据removeStorage(){wx.removeStorage({key:'num'});}
      }
    • 当点击删除按钮时,可以看到 storage 中存储的 num 数据被清空,如下:

      在这里插入图片描述

    • 接着在 pages/cate/cate.js 文件中添加异步清空本地数据的代码,如下:

      Page({// 清空本地存储的全部数据clearStorage(){wx.clearStorage();}
      }
    • 当点击清空按钮时,可以看到 storage 区域中保存的两个数据都被清空了,如下:

      在这里插入图片描述

参考视频:尚硅谷微信小程序开发教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table树形表格合并相同的值

el-table树形表格合并相同的值 el-table树形表格合并相同的值让Ai进行优化后的代码 el-table树形表格合并相同的值 <style lang"scss" scoped> .tableBox {/deep/ &.el-table th:first-child,/deep/ &.el-table td:first-child {padding-left: 0;} } …

虚幻基础:移动组件

文章目录 移动组件&#xff1a;角色的移动信息和移动控制walk&#xff1a;行走falling&#xff1a;跳跃&下落 通用设置重力&#xff1a;模式通用重力max acceleration&#xff1a;模式通用加速度 walk制动降速行走&#xff1a;速度超过最大速度时的减速力 falling空气控制空…

DeepSeek + Kimi 自动生成 PPT

可以先用deepseek生成ppt大纲&#xff0c;再把这个大纲复制到Kimi的ppt助手里&#xff1a; https://kimi.moonshot.cn/kimiplus/conpg18t7lagbbsfqksg 选择ppt模板&#xff1a; 点击生成ppt就制作好了。

Unity 解决TMP_Text 文字显示异常的问题

问题 Unity 中TMP_Text 文字显示异常大多可分为两种情况。①制作TMP 字体选用的文本不包含该文字&#xff1b;②制作TMP 字体选用的ttf 源不包含该文字。 第一种情况&#xff0c;制作TMP 字体选用的文本不包含&#xff0c;只需在选用的Charater File 中添加再重新生成即可。 …

Day19:把数字翻译成字符串

现有一串神秘的密文 ciphertext&#xff0c;经调查&#xff0c;密文的特点和规则如下&#xff1a; 密文由非负整数组成数字 0-25 分别对应字母 a-z 请根据上述规则将密文 ciphertext 解密为字母&#xff0c;并返回共有多少种解密结果。 LCR 165. 解密数字 - 力扣&#xff08…

CentOS下安装ElasticSearch(日志分析)

准备目录 搞一个自己喜欢的目录 mkdir /usr/local/app 切换到该目录 cd /usr/local/app 下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz 选择其他版本 点击进入官网

汽车机械钥匙升级一键启动的优点

汽车机械钥匙升级一键启动的优点主要包括&#xff1a; 便捷性&#xff1a;一键启动功能的引入极大地提升了用车便捷性。车主无需翻找钥匙&#xff0c;只需在车辆感应范围内轻触启动键&#xff0c;即可轻松发动汽车。 安全性&#xff1a;移动管家专车专用一键启动系统配备了防…

【深度学习量化交易16】触发机制设置——基于miniQMT的量化交易回测系统开发实记

我是Mr.看海&#xff0c;我在尝试用信号处理的知识积累和思考方式做量化交易&#xff0c;应用深度学习和AI实现股票自动交易&#xff0c;目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。 很多朋友关心回测系统的开发进展&#xff0c;在正式…

RabbitMQ 和 Redis 的选择

在处理大规模消息场景时&#xff0c;RabbitMQ 和 Redis 的选择需根据具体需求权衡。 大规模消息场景的关键考量 ​吞吐量需求&#xff1a; ​Redis&#xff1a;更适合 ​超高频写入​&#xff08;如百万级/秒&#xff09;&#xff0c;但需牺牲部分可靠性。​RabbitMQ&#xff…

【从零开始学习计算机科学与技术】计算机网络(七)应用层

【从零开始学习计算机科学与技术】计算机网络(七)应用层 应用层DNS域名资源记录域名解析:域名解析的种类:电子邮件SMTP简单邮件传输协议POP3IMAP文件传输(FTP、TFTP和NFS)FTPTFTPNFSWWW超文本HTMLURLHTTP代理服务器:远程登陆Telnet和rlogin多媒体通信协议应用层 其最靠…

图解AUTOSAR_CP_WatchdogDriver

AUTOSAR WatchdogDriver模块详解 AUTOSAR MCAL层看门狗驱动模块详细解析 目录 1. 模块概述2. 架构位置 2.1. 组件架构 3. 主要功能4. API接口5. 配置参数 5.1. 配置模型 6. 错误代码7. 状态管理 7.1. 状态机 8. 处理流程 8.1. 活动流程 9. 操作序列 9.1. 典型操作序列 10. 硬件…

Linux操作系统应用

Linux操作系统应用 一、用户与用户组管理1.1 管理用户1.1.1 与用户账号相关的文件1.1.2 用户管理命令1.1.3 任务实施 1.2 管理用户组1.2.1 用户组1.2.2 用户组管理命令 1.3 查看用户和用户组状态1.3.1 用户查看命令 id、who、whoami1.3.2 用户身份切换命令 su、sudo 二、文件管…

【大语言模型_5】xinference部署embedding模型和rerank模型

一、安装xinference pip install xinference 二、启动xinference ./xinference-local --host0.0.0.0 --port5544 三、注册本地模型 1、注册embedding模型 curl -X POST "http://localhost:5544/v1/models" \ -H "Content-Type: application/json" \…

Vector 的模拟实现:从基础到高级

文章目录 1. 引言2. vector的核心设计3. vector的常用接口介绍3.1 构造函数和析构函数3.1.1 默认构造函数3.1.2 带初始容量的构造函数3.1.3 析构函数 3.2 拷贝构造函数和拷贝赋值运算符3.2.1 拷贝构造函数3.2.2 拷贝赋值运算符 3.5 数组长度调整和动态扩容3.5.1 调整大小&#…

深入理解 Linux 的 top 命令:实时监控系统性能

在 Linux 系统管理和性能优化中,top 命令是一个不可或缺的工具。它可以实时显示系统的进程信息和资源使用情况,帮助管理员快速定位性能瓶颈。本文将详细介绍 top 命令的输出内容及其使用方法,帮助你更好地掌握系统性能监控。 一、top 命令简介 top 是一个动态显示系统状态的…

拖拽实现+摇杆实现

拖拽实现 拖拽事件实现: 半透明渐变贴图在ios设备下&#xff0c;使用压缩会造成图片质量损失&#xff0c;所以可以将半透明渐变UI切片单独制作真彩色图集 拖拽事件组 IBeginDragHandler:检测到射线后&#xff0c;当拖拽动作开始时执行一次回调函数 IDragHandler:拖拽开始后&a…

xLua_001 Lua 文件加载

xLua下载 1、HelloWrold 代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; // 引入XLua命名空间 public class Helloworld01 : MonoBehaviour {//声明LuaEnv对象 private LuaEnv luaenv;void Start(){//实例化LuaEnv对象…

每天看一篇漏洞报告

前言&#xff1a; 内容来源于乌云漏洞 今日思考xss漏洞&#xff0c; 今天看到一篇文章&#xff0c;里面详细说了xss的绕过技巧&#xff0c;虽然时间久了&#xff0c;没有去尝试&#xff0c;待会有时间去测试一下 以下是整理后的文章&#xff0c;原文在下面 文章链接&#…

【sql靶场】第18-22关-htpp头部注入保姆级教程

目录 【sql靶场】第18-22关-htpp头部注入保姆级教程 1.回顾知识 1.http头部 2.报错注入 2.第十八关 1.尝试 2.爆出数据库名 3.爆出表名 4.爆出字段 5.爆出账号密码 3.第十九关 4.第二十关 5.第二十一关 6.第二十二关 【sql靶场】第18-22关-htpp头部注入保姆级教程…

Python----计算机视觉处理(Opencv:形态学变换)

一、形态学变化 形态学变换&#xff08;Morphological Transformations&#xff09;是一种基于形状的图像处理技术&#xff0c;主要处理的对象为二值化图像。 形态学变换有两个输入和一个输出&#xff1a;输入为原始图像和核&#xff08;即结构化元素&#xff09;&#xff0c;输…