learning-note icon indicating copy to clipboard operation
learning-note copied to clipboard

对storage的封装

Open jackPanyj opened this issue 9 years ago • 0 comments

localStoragesessionStorage 是比较好的存储方式,

当存到这里面的时候页面刷新是不会丢失数据的,除非手动清楚。

sessionStorage是当页面关闭后就会自动清空的。

由于该存储方式只能存字符串,所以每次调用的时候就必须使用JSON.stringify() 函数来

把对象转换成字符串,挺麻烦的。 我就封装成了一个模块。

代码如下:

localStorage: 的封装

local.js

const {localStorage, JSON} = window
const storage = {

  set (key, val = {}) {
    let _value = JSON.stringify(val)
    localStorage.setItem(key, _value)
  },

  get (key) {
    const _value = localStorage.getItem(key)
    return JSON.parse(_value)  || {} // 如果为null则返回空对象
  },

  remove (...keys) {
    keys.forEach(key => localStorage.removeItem(key))
  },

  clear () {
    localStorage.clear()
  }
}
export default storage

sessionStorage与之类似, 只是把所有的localStorage换成sessionStorage就行了。

调用方式:

import local from './local.js'
let obj = {
  today: '周五',
  tommorow: '周六'
}
local.set('obj', obj) // 存
local.get('obj') // 取
local.remove('obj', 'abc') // 删出俩个
local.clear() // 清空

jackPanyj avatar Jul 08 '16 03:07 jackPanyj