美文网首页
封装localStorage

封装localStorage

作者: xiesen | 来源:发表于2019-07-12 15:39 被阅读0次

    什么是localStorage?

    localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将数据保存在客户端中,而客户端一般是指上海网站设计用户的计算机。在移动设备上,由于大部分浏览器都支持web storage特性,因此在android和ios等智能手机上的web浏览器都能正常使用该特性
    localStorage保存的数据,一般情况下是永久保存的,也就是说只要采用localstorage保存信息,数据便一直存储在用户的客户端中。即使用户关闭当前web浏览器后重新启动,数据让然存在。知道用户或程序明确制定删除,数据的生命周期才会结束。

    在安全性方面,localstorage是域内安全的,即localstorage是基于域的。任何在该域内的所有页面,都可以访问localstorage数据。但让然存在一个问题,就是各个浏览器厂商的浏览器之间的数据是各自独立的。也就是说,如果在firefox中使用localstorage存储一组数据,在chrome浏览器下是无法读取的。同样,由于localstorage数据是保存在用户的设备中的,因此同一个应用程序在不同设备上保存的数据是不同的。

    创建utils包,将localStorage.js放入utils包下
    localStorage.js

    const localStorage = window.localStorage
    
    /**
     * localStorage 设置
     * @param {String} key 键
     * @param {String} val 值
     */
    export function set(key, val) {
      try {
        if (!key) return
        return localStorage.setItem(key, val)
      } catch (err) {}
    }
    
    /**
     * localStorage 获取
     * @param {String} key 键
     * @return {Boolean} key 对应 localStorage 的值
     */
    export function get(key) {
      try {
        if (!key) return ''
        return localStorage.getItem(key)
      } catch (err) {
        return ''
      }
    }
    
    /**
     * 清除 localStorage,若不填参数 key ,则清除所有 localStorage
     * @param {String} key 键
     * @return {Boolean} 是否清除成功
     */
    export function remove(key) {
      try {
        if (typeof key === 'undefined') return localStorage.clear()
        return localStorage.removeItem(key)
      } catch (err) {
        return false
      }
    }
    
    /**
     * 检查是否支持 localStorage
     * @return {Boolean} 当前浏览器是否支持 localStorage
     */
    export function support() {
      try {
        localStorage.setItem('key', 'value')
        if (localStorage.getItem('key') === 'value') {
          localStorage.removeItem('key')
          return true
        } else {
          return false
        }
      } catch (err) {
        return false
      }
    }
    
    // 默认导出全量方法
    export default {
      get,
      set,
      remove,
      support
    }
    

    需要使用localStorage的页面引入localStorage.js

    import localStorage from '../utils/localStorage.js'
    
    localStorage.set('key','val')
    localStorage.get('key')
    localStorage.remove('key')
    

    相关文章

      网友评论

          本文标题:封装localStorage

          本文链接:https://www.haomeiwen.com/subject/wqxykctx.html