vue开发之数据存储sessionStorage、localStorage

一、sessionStorage定义及使用

1.定义

    sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

2.使用

  • sessionStorage的写入
    1. sessionStorage.lastname = 'lastname' // 点(.)运算符
    2. sessionStorage['lastname'] = 'lastname' // 方括号([])运算符
    3. sessionStorage.setItem('lastname', 'lastname') // sessionStorage.setItem
  • sessionStorage的读取
    1. sessionStorage.lastname // 点(.)运算符
    2. sessionStorage['lastname'] // 方括号([])运算符
    3. sessionStorage.getItem('lastname') // sessionStorage.getItem
  • sessionStorage删除
    1. sessionStorage.removeItem('lastname') // 删除指定内容
    2. sessionStorage.clear() // 删除sessionStorage存储的所有内容

二、sessionStorage的二次封装

1.定义封装缓存文件/common/session.js

// 对本地数据进行操作的相关方法 sessionStorage的封装
const Session = {
  getItem(key) {
    const item = sessionStorage.getItem(key)
    // 判断是字符串还是对象
    const result = /^[{\[].*[}\]]$/g.test(item)
    if (result) {
      return JSON.parse(item)
    } else {
      return item
    }
  },
  setItem(key, value) {
    // 判断是字符串还是对象
    if (typeof value === 'string') {
      sessionStorage.setItem(key, value)
    } else {
      const item = JSON.stringify(value)
      sessionStorage.setItem(key, item)
    }
  },
  removeItem(key) {
    sessionStorage.removeItem(key)
  },
  clear() {
    sessionStorage.clear()
  }
}

export {
  Session
}

2.在main.js中使用

import {Session} from './common/session.js'
Vue.prototype.$session = Session

3.在页面中使用

var lastname = 'lastname'
this.$session.setItem('lastname', lastname)
console.log(this.$session.getItem('lastname'))

三、localStorage定义及使用

1.定义

localStorage用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。

localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。

提示: 如果你只想将数据保存在当前会话中,可以使用sessionStorage属性, 改数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

2.使用

localStorage的用法和sessionStorage基本一致,可参照上文sessionStorage的用法。这里就不再阐述了。

四、总结

1.区别

  • sessionStorage:生命周期是临时,仅在当前会话窗口有效,关闭页面或浏览器数据就会自动被清除。sessionStorage的作用域是窗口、协议、主机名、端口。
  • localStorage:生命周期是永久,除非主动清除localStorage信息,否则这些信息将一直存放在客户端。localStorage的作用域是协议、主机名、端口。一般的浏览器能存储的是5MB左右

2.使用场景

     sessionStorage/localStorage主要用于不同页面之间的传值。

3.特点

  • 不同浏览器之间无法共享sessionStorage或localStorage中的数据。
  • sessionStorage和localStorage可以使用统一的API接口。
  • sessionStorage和localStorage都只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON.stringify(obj)将其转成字符串,取出来时使用 JSON.parse(str)重新转成对象。由于在开发过程中容易忘记将复杂的对象转换成字符串来进行存储,而对sessionStorage/localStorage的二次封装很好的解决了这个问题。
  • sessionStorage或localStorage是HTML5的新属性,所以需要较新的浏览器才支持。

       https://img1.sycdn.imooc.com/5bab321d0001972206300152.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值