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

20-js本地存储

js本地存储

localStorage

localStorage是window下的对象,可以使用window.localStorage调用,也可以直接使用localStorage调用。

浏览器关闭,localStorage也不会消失

示例:

<body><h2>localStorage</h2><button onclick="saveData()">点我保存一个数据</button><button onclick="readData()">读取数据</button><button onclick="deleteData()">删除数据</button><button onclick="clearData()">清空数据</button><script>function saveData() {// 参数1:key,参数2:value// key、value都需要是字符串// localStorage.setItem('msg', 'hello')let person = {name: '张三', age:18}localStorage.setItem('person', JSON.stringify(person));}function readData() {let result = localStorage.getItem('person')console.log(JSON.parse(result))}function deleteData() {localStorage.removeItem('person');}function clearData() {localStorage.clear();}</script>
</body>

sessionStorage

用法和localStorage完全一样。

浏览器关闭后,sessionStorage会消失

<body><h2>sessionStorage</h2><button onclick="saveData()">点我保存一个数据</button><button onclick="readData()">读取数据</button><button onclick="deleteData()">删除数据</button><button onclick="clearData()">清空数据</button><script>function saveData() {// 参数1:key,参数2:value// key、value都需要是字符串// sessionStorage.setItem('msg', 'hello')let person = {name: '张三', age:18}sessionStorage.setItem('person', JSON.stringify(person));}function readData() {let result = sessionStorage.getItem('person')console.log(JSON.parse(result))}function deleteData() {sessionStorage.removeItem('person');}function clearData() {sessionStorage.clear();}</script>
</body>

总结

localStorage、sessionStorage统称为webStorage。

存储内容大小一般支持5MB左右(和浏览器有关)。

浏览器通过Window.sessionStorageWindow.localStorage属性实现本地存储机制。

相关API:

  1. xxxStorage.setItem('key', 'value'):该方法接收一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。
  2. xxxStorage.getItem('person'):该方法接收一个键名作为参数,返回键名对应的值
  3. xxxStorage.removeItem('key'):该方法接收一个键名作为参数,并把该键名从存储中删除
  4. xxxStorage.clear():该方法会清空存储中的所有数据

sessionStorage存储的内容会随着浏览器窗口关闭而消失。

localStorage存储的内容,需要手动清除才会消失(调用相关API、手工清空浏览器的缓存)。

xxxStorage.getItem(xxx)如果键名对应的value获取不到,那么返回值是null。

JSON.parse(null)的结果也是null

使用本地存储来保存vue中的数据

示例:

<script>
import MyHeader from './components/MyHeader'
import MyFooter from './components/MyFooter'
import MyList from './components/MyList'export default {name: 'App',components: {MyHeader, MyFooter, MyList},data() {return {// todos初始化时,读取浏览器本地存储的todos,如果没有则设置为[]todos: JSON.parse(localStorage.getItem('todos')) || []}},watch: {// 使用监视器监视todos的改变,当todos改变时存入本地存储中,浏览器关闭也不会丢失todos: {handler(value) {localStorage.setItem('todos', JSON.stringify(value));},deep:true}}
}
</script>

先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!

http://www.lryc.cn/news/15331.html

相关文章:

  • ABAP 辨析ON INPUT|REQUEST|CHAIN-INPUT|CHAIN-REQUEST
  • LeetCode:逆波兰式;
  • 为什么阳康后,感觉自己变傻了?
  • 考公和大厂40万年薪的offer,选哪个?
  • 多线程环境下调用 HttpWebRequest 并发连接限制
  • vue3-element-admin搭建
  • 蓝海创意云vLive虚拟直播亮相2023昆山元宇宙产品展览会
  • ThreadLocal线程变量
  • 【linux安装redis详解】小白如何安装部署redis,linux安装部署只需5步骤(图文结合,亲测有效)
  • 2023只会“点点点”,被裁只是时间问题,高薪的自动化测试需要掌握那些技能?
  • C语言【柔性数组】
  • AcWing275. 传纸条
  • 圆角矩形的绘制和曲线均匀化
  • 【Linux】环境变量,命令行参数,main函数三个参数保姆教学
  • 美国访问学者生活中有哪些饮食文化特点?
  • RxJava中的Subject
  • vue-element-admin在git 上 clone 之后无法install
  • Linux线程调度实验
  • 洛谷P5735 【深基7.例1】距离函数 C语言/C++
  • 企业什么要建设自有即时通讯软件系统
  • LocalDNS
  • 线程池种类和拒绝策略
  • Python制作9行最简单音乐播放器?不,我不满足
  • 零基础小白如何学会数据分析?
  • 【Linux】vim的使用及常用快捷键(不会使用vim?有这篇文章就够了)
  • 刷完这19道leetcode二分查找算法,不信进不了大厂
  • 四、Plugin Request and Sometimes pads
  • 唤醒手腕 Java 后端 Springboot 结合 Redis 数据库学习笔记(更新中)
  • robotiq 2f 140安装在UR3机械臂后面在gazebo仿真中散架、抖动
  • 坐标系概念 四元数 欧拉角