vue2:浏览器本地存储(webStorage)

简介: vue2:浏览器本地存储(webStorage)

webStorage分为

localStorage、sessionStorage

特点:

1.存储容量一般支持5MB左右(不同浏览器也有所不同)

2.浏览器通过window.localStoragewindow.sessionStorage属性来实现本地存储机制

相关api:

xxxStorage.setItem('key','value'):该方法接收一个键和参数,会把键值对添加到存储中,如果键名存在,更新起对应内容

xxxStorage.getItem('person'):该方法接收一个键名作为参数,返回键名对应的值

xxxStorage.removeItem('key'):该方法接收一个键名作为参数,并把键名从存储中删除

xxxStorage.clear():该方法会清空存储中所有的数据

解释:

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

localStorage存储的内容,需要手动清除才会消失

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

JSON.parse(null)的结果依旧是null

localStorage

特点:

1.如果用户住店点击某个api接口如(deleteData、deleteAllData)会改变数据

2.当用户清空浏览器的缓存时,数据也会随之消失

浏览器本地存储(演示)

1.首先我们要在某个浏览器中输入东西后,关闭它,在重更新打开

2.开启开发者工具中的Application(应用)选项,在Local Storage里面有两个选项

       (有一个或两个或多个网站:搜索的历史记录就在显示你电脑地址的网页里面)

3.里面有两个属性列表(我们拿唯品会来说:Key和Value)

       注意:Key和Value里面的内容都是字符串形式(如果用户输入的不是字符串类型,它会自动给你转成字符串类型)

存储

举例:

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>localStorage</title></head><body><h2>localStorage</h2><buttononclick="saveData()">点我保存一个数据</button><script>functionsaveData(){
localStorage.setItem('msg1','hello!')
localStorage.setItem('msg2',666)
        }
</script></body></html>

结果演示:

image.png

我们可以通过:

localStorage.setItem('xxx','yyy'),以键值对的形式存在!

xxx:写入的是密钥的数据(key)

yyy:写入的是值的数据(Value)

如果我们用字符串的形式直接项存到本地储存的话,会出现如下情况:

<body><h2>localStorage</h2><buttononclick="saveData()">点我保存一个数据</button><script>letp= {name:'张三',age:18}
functionsaveData(){
localStorage.setItem('msg1','hello!')
localStorage.setItem('msg2',666)
localStorage.setItem('个人信息',p)
        }
</script></body>

显示结果:

image.png

解决方法:

<body><h2>localStorage</h2><buttononclick="saveData()">点我保存一个数据</button><script>letp= {name:'lqj',age:20}
functionsaveData(){
localStorage.setItem('msg1','hello!')
localStorage.setItem('msg2',666)
localStorage.setItem('个人信息',JSON.stringify(p))
        }
</script></body>

显示结果:

image.png

读取

注意:直接读取以对象存入的形式,就会直接出现一个字符串转换为字符串的形式(例如{"name":"lqj","age":"20"})

       若我们要以对象的形式让其输出显示:                

解决办法:JSON.parse(xxx)前提是xxx为{"name":"lqj","age":"20"}的key值!


举例:

<buttononclick="raedData()">点我读取一个数据</button>                function raedData(){
                console.log(localStorage.getItem('msg1'))
                console.log(localStorage.getItem('msg2'))
                const result = localStorage.getItem('个人信息')
                console.log(JSON.parse(result))
                }

结果显示:

image.png

删除

关键api:

localStorage.removeItem('xxx')


举例:

<buttononclick="deleteData()">点我删除一个数据</button>                function deleteData(){
                        localStorage.removeItem('个人信息')
                }

image.png

清空

关键api:

localStorage.clear()

举例:

<buttononclick="deleteAllData()">点我清空数据</button>                function deleteAllData(){
                        localStorage.clear()
                }

结果显示:

image.png

注意:如果我们不小心写了一个没有给值的key

读取时会报:null

当读取一个没有给值的对象数据时,报出null,然后我们再用JSON.parse()来解析它时,还会报null,并不是undefined(也就是说并不会报空指针异常)


sessionStorage

特点:

    特点当我们关闭浏览器时自动删除数据

目录
相关文章
|
28天前
|
存储 缓存 JSON
vue2知识点:浏览器本地缓存
vue2知识点:浏览器本地缓存
42 2
|
3月前
|
存储 JavaScript 程序员
Vue学习之---浏览器本地存储(8/17)
这篇文章介绍了Vue中浏览器本地存储的使用方法,包括基础知识、localStorage和sessionStorage的代码实例及其测试效果,并提供了相关的API和操作示例。
Vue学习之---浏览器本地存储(8/17)
|
4月前
|
编解码 JavaScript
【vue2】vue2 适配pc端,解决浏览器缩放问题,解决电脑显示设置缩放、分辨率问题
【vue2】vue2 适配pc端,解决浏览器缩放问题,解决电脑显示设置缩放、分辨率问题
463 1
|
6月前
|
存储 JSON 安全
[浏览器系列] : 客户端本地存储
[浏览器系列] : 客户端本地存储
70 2
[浏览器系列] : 客户端本地存储
|
6月前
|
存储
【Vue2.0学习】—浏览器本地存储(五十七)
【Vue2.0学习】—浏览器本地存储(五十七)
|
存储 移动开发 缓存
📚现代化浏览器本地存储解决方案以及落地实践
前言 最近在项目需要做数据存储,调研到了localforage这个库,在项目中也使用了,接下里我来介绍下它的实现方式以及在React项目如何落地(直接copy下面的hooks解决方案就可以在项目中使用了) 使用
148 0
|
存储 Web App开发 缓存
前端(二):浏览器本地存储 - cookie、localStorage、sessionStorage
浏览器本地存储 - cookie、localStorage、sessionStorage
138 0
|
存储 缓存 JavaScript
Vue(Vue2+Vue3)——38.浏览器存储(webStorage)
Vue(Vue2+Vue3)——38.浏览器存储(webStorage)
|
存储 缓存 移动开发
浏览器缓存机制(三):本地存储
浏览器缓存机制(三):本地存储
185 0
|
前端开发 JavaScript 中间件
Vue 2.x折腾记 - (12) Nuxt.js写一个校验访问浏览器设备类型及环境的中间件
这个需求非常常见,分享出去的页面的有时候在手机访问,有时候别人是PC打开的; 若是不是共享同一个页面的情况,就需要拦截跳转了; 当然你要共享同一个页面也可以(放大化到PC也需要添加某些CSS,也需判断设备)
344 6