uniapp 本地存储的方式

1. uniapp 本地存储的方式

  在uniapp开发中,本地存储是一个常见的需求。本地存储可以帮助我们在客户端保存和管理数据,以便在应用程序中进行持久化存储。本文将介绍uniapp中本地存储的几种方式,以及相关的代码示例。

1.1. 介绍

  在移动应用开发中,我们经常需要将一些数据保存在客户端,比如用户的个人设置、应用的配置信息等。uniapp提供了多种本地存储的方式,包括localStorage、sessionStorage、uni.setStorageSync和uni.setStorage等。接下来,我们将逐一介绍这些方式,并给出相应的代码示例。
  uniapp本地存储的几种方式
(1)localStorage:使用浏览器提供的localStorage API进行本地存储,可以存储字符串类型的数据,并且在同一域名下的所有页面共享。
(2)sessionStorage:与localStorage类似,但是数据只在当前会话期间有效,一旦会话结束就会被清除。
(3)uni.setStorageSync和uni.getStorageSync:uniapp提供的API,可以将数据存储在本地文件中,可以存储各种类型的数据,包括对象和数组。
(4)uni.setStorage和uni.getStorage:与uni.setStorageSync和uni.getStorageSync类似,但是使用异步方式进行存储和获取数据。
  这些方式可以根据实际需求选择合适的方式进行本地存储。

1.2. 使用本地存储的好处

  uniapp使用本地存储的好处包括:
(1)数据持久化:本地存储可以将数据保存在用户设备上,即使用户关闭应用或重启设备,数据仍然可以被保留。
(2)减少网络请求:通过本地存储可以缓存一些常用的数据,减少对服务器的请求,提高应用的性能和加载速度。
(3)离线访问:本地存储可以使应用在没有网络连接的情况下仍然能够访问一些数据,提高用户体验。

1.3. 方法

1.3.1. localStorage

  localStorage是HTML5标准中定义的用于客户端存储的API。在uniapp中,我们可以直接使用localStorage来进行本地存储。
(1)说明

// 将数据存储到localStorage中
localStorage.setItem('key', 'value');
// 从localStorage中获取数据
var value = localStorage.getItem('key');

(2)实例

 /*** localStorage数据存储*/
localStorageData: function () {// 将数据存储到localStorage中localStorage.setItem('SP_NAME', 'zzs');// 从localStorage中获取数据var value = localStorage.getItem('SP_NAME');console.log("从localStorage中获取数据:",value)
},

在这里插入图片描述

1.3.2. sessionStorage

  sessionStorage也是HTML5标准中定义的用于客户端存储的API,它与localStorage的区别在于数据只在当前会话期间有效。在uniapp中,我们同样可以直接使用sessionStorage来进行本地存储。
(1)说明

// 将数据存储到sessionStorage中
sessionStorage.setItem('key', 'value');
// 从sessionStorage中获取数据
var value = sessionStorage.getItem('key');

(2)实例

 /*** sessionStorage数据存储*/
sessionStorageData: function () {// 将数据存储到sessionStorage中sessionStorage.setItem('SP_NAME2', 'zzs2');// 从sessionStorage中获取数据var value = sessionStorage.getItem('SP_NAME2');console.log("从sessionStorage中获取数据:",value)
},

在这里插入图片描述

1.3.3. uni.setStorageSync

  uni.setStorageSync是uniapp提供的本地存储方法之一,它可以将数据同步存储到本地。
(1)说明

// 将数据存储到本地
uni.setStorageSync('key', 'value');
// 从本地获取数据
var value = uni.getStorageSync('key');

(2)实例

/**
* setStorageSync数据存储
*/
setStorageSyncData: function () {// 将数据存储到本地uni.setStorageSync('SP_NAME3', 'zzs3');// 从本地获取数据var value = uni.getStorageSync('SP_NAME3');console.log("从setStorageSyncData中获取数据:", value)
},

在这里插入图片描述

1.3.4. uni.setStorage

  uni.setStorage是uniapp提供的另一种本地存储方法,它可以将数据异步存储到本地。
(1)说明

// 将数据异步存储到本地
uni.setStorage({key: 'key',data: 'value',success: function () {// 存储成功的逻辑}
});
// 从本地异步获取数据
uni.getStorage({key: 'key',success: function (res) {var value = res.data;// 获取数据成功的逻辑}
});

(2)实例

/**
* setStorage数据存储
*/
setStorageData: function () {// 将数据异步存储到本地uni.setStorage({key: 'SP_NAME4',data: 'zzs4',success: function () {// 存储成功的逻辑}});// 从本地异步获取数据uni.getStorage({key: 'SP_NAME4',success: function (res) {var value = res.data;// 获取数据成功的逻辑console.log("从setStorage中获取数据:", value)}});
},

在这里插入图片描述

1.4. 完整代码

<template><view></view>
</template><script>export default {data() {return {}},onLoad: function () {var that = this;//localStorage数据存储that.localStorageData()//sessionStorage数据存储that.sessionStorageData()//setStorageSync数据存储that.setStorageSyncData()//setStorage数据存储that.setStorageData()},methods: {/*** localStorage数据存储*/localStorageData: function () {// 将数据存储到localStorage中localStorage.setItem('SP_NAME', 'zzs');// 从localStorage中获取数据var value = localStorage.getItem('SP_NAME');console.log("从localStorage中获取数据:", value)},/*** sessionStorage数据存储*/sessionStorageData: function () {// 将数据存储到sessionStorage中sessionStorage.setItem('SP_NAME2', 'zzs2');var value = sessionStorage.getItem('SP_NAME2');console.log("从sessionStorage中获取数据:", value)},/*** setStorageSync数据存储*/setStorageSyncData: function () {// 将数据存储到本地uni.setStorageSync('SP_NAME3', 'zzs3');// 从本地获取数据var value = uni.getStorageSync('SP_NAME3');console.log("从setStorageSync中获取数据:", value)},/*** setStorage数据存储*/setStorageData: function () {// 将数据异步存储到本地uni.setStorage({key: 'SP_NAME4',data: 'zzs4',success: function () {// 存储成功的逻辑}});// 从本地异步获取数据uni.getStorage({key: 'SP_NAME4',success: function (res) {var value = res.data;// 获取数据成功的逻辑console.log("从setStorage中获取数据:", value)}});},}}
</script>
<style>
</style>

在这里插入图片描述

1.5. 结论

  本文介绍了uniapp中本地存储的几种方式,包括localStorage、sessionStorage、uni.setStorageSync和uni.setStorage。通过这些方式,我们可以方便地在uniapp应用中进行本地数据的存储和管理。根据具体的需求和场景,我们可以选择合适的方式来进行本地存储操作。希望本文能够帮助读者更好地理解uniapp中本地存储的相关知识,并在实际开发中得到应用。

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

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

相关文章

瑞_力扣LeetCode_二叉树相关题

文章目录 说明题目 144. 二叉树的前序遍历题解 题目 94. 二叉树的中序遍历题解 题目 145. 二叉树的后序遍历题解 题目 105. 从前序与中序遍历序列构造二叉树题解 题目 106. 从中序与后序遍历序列构造二叉树题解 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《刷题》的…

【深度学习】Softmax实现手写数字识别

实训1&#xff1a;Softmax实现手写数字识别 相关知识点: numpy科学计算包&#xff0c;如向量化操作&#xff0c;广播机制等 1 任务目标 1.1 简介 本次案例中&#xff0c;你需要用python实现Softmax回归方法&#xff0c;用于MNIST手写数字数据集分类任务。你需要完成前向计算…

python将Word页面纸张方向设置为横向

通过python-docx的章节属性&#xff0c;就可以更改纸张方向、纸张尺寸。 import docx from docx.enum.section import WD_ORIENT from docx.shared import Cmdocument docx.Document() section document.sections[0]# 设置纸张大小为A4大小 section.page_width Cm(21) sect…

2023年全国职业院校技能大赛软件测试赛题第3套

2023年全国职业院校技能大赛 软件测试赛题第3套 赛项名称&#xff1a; 软件测试 英文名称&#xff1a; Software Testing 赛项编号&#xff1a; GZ034 归属产业&#xff1a; 电子与信息大类 …

语雀·教育邮箱现在提供免费一年会员资格!

作为一位深度使用电子笔记的用户&#xff0c;我曾长期使用印象笔记&#xff0c;后来发现有道云笔记也非常适合我的需求。然而&#xff0c;我最近发现语雀和飞书等云笔记服务越来越出色。&#xff08;相比之下&#xff0c;有道云笔记的启动速度较慢&#xff0c;而且存在各种广告…

JVM 性能调优- 五种内存溢出(5)

在介绍之前先简单介绍下 直接内存(Direct Memory)和堆内存(Heap Memory): 关系: 直接内存并不是Java虚拟机的一部分,它是通过Java的NIO库中的ByteBuffer来分配和管理的。直接内存通常由操作系统的本地内存(Native Memory)提供支持。堆内存是Java虚拟机的一部分,用于存…

在线音乐服务器测试报告

一、项目背景 在线音乐服务器采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;同时将其部署到云服务器上。前端主要有个页面构成&#xff1a;登录页、音乐列表页、收藏音乐页等&#xff0c;以上模拟实现了最简单的在线音乐服务器。其结合后…

【深入浅出MySQL】「底层原理」InnoDB索引原理全程实操指南,带你从入门到精通

InnoDB索引原理全程实操指南&#xff0c;带你从入门到精通 每日一句前言概述正文介绍索引的介绍创建索引聚集索引非聚集索引**如果我的表没有建立主键该怎么办呢&#xff1f;** 索引原理什么情况不去聚集索引树去查询&#xff1f;版权声明 每日一句 不要停顿,因为别人会超过你;…

机器学习 | 揭示EM算法和马尔可夫链的实际应用

目录 初识EM算法 马尔可夫链 HMM模型基础 HMM模型使用 初识EM算法 EM算法是一种求解含有隐变量的概率模型参数的迭代算法。该算法通过交替进行两个步骤&#xff1a;E步骤和M步骤&#xff0c;从而不断逼近模型的最优参数值。EM算法也称期望最大化算法&#xff0c;它是一个基…

H12-821_28

28.如图所示,在一个纯IPv6环境中,若想实现PC1与PC2之间的通信,下列哪组地址可以分别配置在PC1与P2上 A.2001:FDC:1/64 2001:FDC::2/64 B.2001:FDC::1/64 2001:FDC1::2/64 C.FD00:1AC0:872E::1/64 FD00:2BE1:2320::1/64 D.FE80::1/64 FE80::2/64 答案&#xff1a;B 注释&…

Termux配置安卓编译环境

前言 Termux安装后&#xff0c;就相当于把手机变成了一台Linux服务器&#xff0c;而且现在手机卡通常是能拿到ipv6公网地址的&#xff0c;所以&#xff0c;这个服务器能干啥&#xff1f; 编程搭建网站跑脚本 本文讲述的就是怎么在Termux搭建安卓编译环境&#xff0c;实现手机…

c++之说_12|模板

关于模板&#xff0c;至少我们要先了解几个概念 一&#xff1a;函数模板 二&#xff1a;类模板 三&#xff1a;模板特化 四&#xff1a;形参参数包 模板覆盖的东西太多 我目前也不了解太多 函数模板 语法 template<typename 类型名,typename 类型名,typename ...多参…

CopyOnWriteArrayList底层原理全面解析【建议收藏】

简介 CopyOnWriteArrayList是Java中的一个线程安全的集合类&#xff0c;是ArrayList线程安全版本&#xff0c;主要通过Copy-On-Write&#xff08;写时复制&#xff0c;简称COW&#xff09;机制来保证线程安全。 Copy-On-Write机制核心思想&#xff1a;向一个数组中添加数据时…

LabVIEW动平衡测试与振动分析系统

LabVIEW动平衡测试与振动分析系统 介绍了利用LabVIEW软件和虚拟仪器技术开发一个动平衡测试与振动分析系统。该系统旨在提高旋转机械设备的测试精度和可靠性&#xff0c;通过精确测量和分析设备的振动数据&#xff0c;以识别和校正不平衡问题&#xff0c;从而保证机械设备的高…

Springboot集成jasypt实现配置文件加密

Jasypt它提供了单密钥对称加密和非对称加密两种加密方式。 单密钥对称加密&#xff1a;一个密钥加盐&#xff0c;可以同时用作内容的加密和解密依据&#xff1b; 非对称加密&#xff1a;使用公钥和私钥两个密钥&#xff0c;才可以对内容加密和解密&#xff1b; 我们以单密钥对称…

前端 reduce()用法总结

定义 reduce()方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行)&#xff0c;将其结果汇总为单个返回值。语法为&#xff1a; array.reduce(function(accumulator, currentValue, currentIndex, arr), initialValue); /*accumulator: 必需。累计器currentValu…

5 步轻松上手,教你从 0 到 1 落地 Jmeter 接口自动化脚本!

Jmeter是进行接口测试的一款非常主流的工具&#xff0c;但绝大部分测试工程师&#xff0c;对于Jmeter接口测试脚本整理都是一知半解的。今天这篇文章&#xff0c;就以一个金融项目中接口为例&#xff0c;通过简单5步&#xff0c;教大家如何0代码编写Jmeter接口自动化脚本&#…

CPU和GPU有什么区别,玩游戏哪个更重要?

大家好&#xff01;今天我们要聊的话题是CPU和GPU&#xff0c;它们在电脑中扮演着重要的角色&#xff0c;虽然看起来只是两个简单的缩写&#xff0c;但它们的功能和影响是截然不同的&#xff01; 那么&#xff0c;究竟CPU和GPU有什么区别呢&#xff1f;在玩游戏时&#xff0c;…

Linux 系统开启网络服务

首先&#xff0c;大家新装的linux系统可能都没有安装vim工具&#xff0c;所以打开文件的方式是 vi /etc/sysconfig/network-scripts/ifcfg-ens33在这个界面把onboot改为yes&#xff0c;我这里是设置完的。然后通过下面语句重新启动服务就可以了。 service network restartcen…

2024.2.7日总结(小程序开发4)

页面导航 页面导航是页面之间的相互跳转&#xff1a; <a>链接location.href 小程序中实现页面导航的两种方式&#xff1a; 声明式导航 在页面上声明一个<navigator>导航组件通过点击<navigator>组件实现页面跳转 编程式导航 调用小程序的导航API&…