在HTML5
之前,客户端本地存储只能依赖于cookie
,它由服务器端在写入的时候就设置好的,cookie
的效率也很低,而且使用不方便,安全性也不高
自从html5
出来后,html5
带来了全新的本地存储功能,一个是localStorage
,另一个是sessionStorage
前者是只要在前端一写入,就会一直存在,除非手动清除,后者是关闭浏览器的时候就会清除
在开发的时候,很多地方都会用到localStorage
,和sessionStorage
比如:表格的分页,一刷新保持当前页的状态,三级路由Tab的一个切换激活状态,用到的就是localStorage
,sessionStorage
可以用来监测用户是否刷新进入页面
今天使用localStorage
实现一个计数器的功能
具体示例
以上的加减计数器,使用了localStorage,无论是关闭浏览器,还是重新打开一个新的窗口,localStorage设置的值,都会永久存储在硬盘里,除非手动删除
一直都是在的,这个在实际开发中,有些地方式有这个需求的,比如:购物车,还有表格分页等等,如果你想持久的保持某个数据状态,那么就可以使用localStorage
如下是简易代码
<template>
<div class="wrap">
<div class="content">
<el-input-number v-model="num" @change="handleChange" :min="1" label="描述文字"></el-input-number>
</div>
</div>
</template>
<script>
export default {
data() {
return {
num: 1,
}
},
mounted() {
// this.num = localStorage.getItem('number') || 1;
// 等价于
this.num = localStorage.number || 1;
},
methods: {
handleChange(val) {
console.log(val);
//localStorage.setItem('number',val)
// 等价于如下
localStorage.number = val;
}
},
};
</script>
<style>
.wrap {
text-align: center;
}
</style>
主要的核心代码是 设置localStorage
使用的是localStorage.setItem('key',val)
// 常用
localStorage.setItem('key',val)
// 或者,如下所示,这里的key是你自己设置的存储的字段,val是要具体存入localStorage的值
localStorage.key = val;
而获取localStorage
使用的是localStorage.getItem('key')
// 常用
localStorage.getItem('key');
// 或者
localStorage.key
前端浏览器本地存储的方法与区别
相同点
在本地(浏览器端)存储数据
不同点
cookie
由服务端写入,而localStorage
,sessionStorage
由前端写入
生命周期
cookie
由服务器端在写入的时候就设置好的,而localStorage
是写入就一直存在,除非手动清除sessionStorage
是页面关闭的时候就清除
存储大小
cookie
的存储空间比较小,大概4KB,sessionStorage
,localStorage
存储空间比较大,大概5M
同源原则
cookie
,sessionStorage
,LocalStorage
数据都遵循同源原则,其中sessionStorage
还限制必须是同一个页面
在前端给后端发送请求的时候,会自动携带cookie
中的数据,但是sessionStorage
不会
应用场景
Cookie
一般用于存储登录验证信息sessionID
或者token
,localStorage
常用语存储不易变动的数据,需要持久化的数据,减轻服务器的压力,sessionStorage
可以用来监测用户是否刷新进入页面
总结
使用localStorage
做持久化存储非常简单,用于存储大量的数据,这一点cookie
是无法做到的