首页 > 其他分享 >Vue学习笔记--浏览器存储(local Storage + session Storage)

Vue学习笔记--浏览器存储(local Storage + session Storage)

时间:2024-03-13 11:55:38浏览次数:24  
标签:function Vue -- sessionStorage Storage setItem localStorage key

浏览器存储:意思就是本地缓存信息

local Storage

示例一:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>local Storage</title>
</head>

<body>
  <h3>local Storage</h3>
  <button onclick="saveData()">点我保存一个数据</button>
  <button onclick="readData()">读取数据</button>
  <button onclick="delData()">删除数据</button>
  <button onclick="delAllData()">删除所有数据</button>

</body>
<script type="text/javascript">
  let p = { name: '三丰', age: 18 }
  function saveData () {
    // setItem中的入参key和vaule都必须是字符串
    localStorage.setItem('msg', 'hello')
    localStorage.setItem('msg2', 666)//会自动 tostring
    localStorage.setItem('person', JSON.stringify(p))
    localStorage.setItem('personobj', p)//对象可不行哦

  }
  function readData () {
    const p = localStorage.getItem('person')
    console.log('person obj==' + p)
  }
  function delData () {
    localStorage.removeItem('personobj')
  }
  function delAllData () {
    localStorage.clear()
  }
</script>

</html>

session Storage:浏览器关闭数据丢失

示例二:运行效果和示例一相同,但关闭浏览器则数据丢失

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>session Storage</title>
</head>

<body>
  <h3>session Storage</h3>
  <button onclick="saveData()">点我保存一个数据</button>
  <button onclick="readData()">读取数据</button>
  <button onclick="delData()">删除数据</button>
  <button onclick="delAllData()">删除所有数据</button>

</body>
<script type="text/javascript">
  let p = { name: '三丰', age: 18 }
  function saveData () {
    // setItem中的入参key和vaule都必须是字符串
    sessionStorage.setItem('msg', 'hello')
    sessionStorage.setItem('msg2', 666)//会自动 tostring
    sessionStorage.setItem('person', JSON.stringify(p))
    sessionStorage.setItem('personobj', p)//对象可不行哦

  }
  function readData () {
    const p = sessionStorage.getItem('person')
    console.log('person obj==' + p)
  }
  function delData () {
    sessionStorage.removeItem('personobj')
  }
  function delAllData () {
    sessionStorage.clear()
  }
</script>

</html>

总结webStorage(local Storage + session Storage)

  1. 存储内容一般支持5MB左右(不同浏览器可能不太相同)  
  2. 浏览器通过window.sessionStorage或Window.localStorage属性实现本地存储机制
  3. 相关API:通过键值对的方式操作
    • sessionStorage.setItem('key', 'value')、localStorage.setItem('key', 'value')
    • sessionStorage.getItem('key')、localStorage.getItem('key')
    • sessionStorage.removeItem('key')、localStorage.removeItem('key')
    • sessionStorage.clear()、localStorage.clear()
  4. 备注:
    • sessionStorage存储的内容会随着浏览器窗口的关闭而消失
    • localStorage存储的内容,需要手动删除才会消失
    • xxxStorage.getItem('key')获取数据,如果获取不到,则返回null
    • Json.parse(null)的返回结果仍然是null

标签:function,Vue,--,sessionStorage,Storage,setItem,localStorage,key
From: https://www.cnblogs.com/YYkun/p/18070186

相关文章

  • npm启动vue项目报错error:0308010C:digital envelope routines::unsupported的解决办
    错误截图解决方法package.json文件中修改dev项为setNODE_OPTIONS=--openssl-legacy-provider&vue-cli-serviceserve:"scripts":{"dev":"setNODE_OPTIONS=--openssl-legacy-provider&vue-cli-serviceserve","build:prod......
  • Sonar使用说明
    1.环境配置去官网地址SonarScanner下载SonarScanner扫描器,根据文档说明进行安装配置以mac为例,SonarScanner版本号为5.0.1.3006-macosx1、下载mac版本,然后解压,建议将文件夹复制到其他目录下,比如/Users/sonar-scanner-5.0.1.3006-macosx2、将bin目录添加到PATH环境变量中,可......
  • 详解Go程序添加远程调用tcpdump功能,exec.Command("sh", "-c", "ps -elf | grep xxx |
    摘自:https://www.jb51.net/article/249001.htm这篇文章主要介绍了go程序添加远程调用tcpdump功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 最近开发的telemetry采集系统上线了。听起来高大上,简单来说就是一个grpc/udp服务端,用......
  • 开启或关闭SELinux
    SELinux简介安全增强型Linux(SELinux)是一种采用安全架构的 Linux®系统,它能够让管理员更好地管控哪些人可以访问系统。它最初是作为 Linux内核的一系列补丁,由美国国家安全局(NSA)利用Linux安全模块(LSM)开发而成。  通过严格的访问控制机制增强系统安全性。一般情况下,建议......
  • 无线通信卡设计原理图:410-基于XCVU9P+ C6678的100G光纤的加速卡 高速数据采集卡
     一、板卡概述   二、技术指标 •  板卡为自定义结构,板卡大小332mmx260mm; •  FPGA采用Xilinx Virtex UltralSCALE+ 系列芯片 XCVU9P; •  FPGA挂载4组FMC HPC 连接器; •  板载4路QSPF+,每路数据速率100Gb/s; •  DSP处理器采用TI 8核处理器......
  • numpy中比较两个数字的断言函数
    比如在比较torch模型输出和onnxruntime输出,importonnxruntimeort_session=onnxruntime.InferenceSession("super_resolution.onnx",providers=["CPUExecutionProvider"])defto_numpy(tensor):returntensor.detach().cpu().numpy()iftensor.requires_g......
  • CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis
    前言:前几天,点开自己的博客,看了一下CYQ.DataV5系列 都有哪些文章,发现了一篇2019年写的:CYQ.Data对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。感觉文章中有些表述存有问题,不过不是重点。重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的......
  • dockerfile多阶段构建镜像
    dockerfile多阶段构建镜像Docker多阶段构建是一种在Dockerfile中使用多个构建阶段来创建镜像的方法。它可以帮助减小最终镜像的大小,并且可以将构建过程分解为多个步骤,提高构建效率。以下是一个使用多阶段构建的示例Dockerfile:#第一阶段:构建应用程序FROMgolang:1.16ASbuilde......
  • find 查找文件并清空文件内容
    简介日常运维操作少不了清理日志这一步骤,但不建议直接rm操作,一个是怕删错,二是如果程序在引用该文件,贸然进行删除会导致文件句柄并未得到释放,会占用额外的存储空间,所以建议用find查找出来进行滞空操作内容注意:以下是示例,记得更换目录第一种方法:find /var/lib/docker/cont......
  • JS 链表 - 笔记
    代码:classListNode{/***@constructor*@param{number}val*@param{ListNode}next*/constructor(val,next){this.val=(val===undefined?0:val);this.next=(next===undefined?null:next);......