JS如何使用localStorage实现计数器功能

前言

HTML5之前,客户端本地存储只能依赖于cookie,它由服务器端在写入的时候就设置好的,cookie的效率也很低,而且使用不方便,安全性也不高

自从html5出来后,html5带来了全新的本地存储功能,一个是localStorage,另一个是sessionStorage

前者是只要在前端一写入,就会一直存在,除非手动清除,后者是关闭浏览器的时候就会清除

在开发的时候,很多地方都会用到localStorage,和sessionStorage比如:表格的分页,一刷新保持当前页的状态,三级路由Tab的一个切换激活状态,用到的就是localStorage,sessionStorage可以用来监测用户是否刷新进入页面

今天使用localStorage实现一个计数器的功能


01

具体示例

JS如何使用localStorage实现计数器功能(https://coder.itclan.cn/fontend/js/31-localstorage-count-num/)

以上的加减计数器,使用了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


02

百前端浏览器本地存储

相同点

在本地(浏览器端)存储数据

不同点

cookie由服务端写入,而localStorage,sessionStorage由前端写入

生命周期

cookie由服务器端在写入的时候就设置好的,而localStorage是写入就一直存在,除非手动清除sessionStorage是页面关闭的时候就清除`

存储大小

cookie的存储空间比较小,大概4KB,sessionStorage,localStorage存储空间比较大,大概5M

同源原则

cookie,sessionStorage,LocalStorage数据都遵循同源原则,其中sessionStorage还限制必须是同一个页面

在前端给后端发送请求的时候,会自动携带cookie中的数据,但是sessionStorage不会

应用场景

Cookie一般用于存储登录验证信息sessionID或者token,localStorage常用语存储不易变动的数据,需要持久化的数据,减轻服务器的压力,sessionStorage可以用来监测用户是否刷新进入页面

总结

使用localStorage做持久化存储非常简单,用于存储大量的数据,这一点cookie是无法做到的

JS如何实现一个注册按钮10秒倒计时效果

2022-11-05

3b741a518c6362a5b31f8552f0e12f3d.jpeg

Js如何修改元素的属性值

2022-11-04

94fd984472a62386e20ffc4c610d1d80.jpeg

JS如何替换元素内容

2022-11-03

eac6720a1c317218cf3ad7f176d6aed6.jpeg

js如何实现随机数的切换

2022-11-02

4c4a29f65760943f8564fab9ad7e467a.jpeg

网站服务器配置-应该选择多大带宽-同时能承载多少用户的访问

2022-11-01

f4a6207506d69ce48e09e65fecaec986.jpeg

af41968a0fa2202cf1d3f42ec7f42dcb.gif

点击下方“阅读原文”即可查看更多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值