封装Local Storage操作模块

541 阅读1分钟
// 封装操作localstorage本地存储的方法  模块化

const storage = {
	
	// 存储
    set(key, value) {
        localStorage.setItem(key, JSON.stringify(value))
    },
	
	// 获取
    get(key) {
        return JSON.parse(localStorage.getItem(key))
    },
	
	// 根据索引获取key
    getForIndex(index) {
        return localStorage.key(index)
    },
	
	// 获取所有key
    getKeys(){
        let items = this.getAll()
        let keys = []
        for (let index=0;index<items.length;index++){
            keys.push(items[index].key)
        }
        return keys
    },
	
	// 获取localStorage长度
    getLength() {
        return localStorage.length
    },
	
	
    getSupport() {
        return (typeof (Storage) !== "undefined") ? true : false
    },
	
	// 移除一个数据
    remove(key) {
        localStorage.removeItem(key)
    },
	
	// 清空localStorage
    removeAll() {
        localStorage.clear()
    },
	
	// 获取localStorage所有数据
    getAll() {
        let len = localStorage.length  // 获取长度
        let arr = new Array() // 定义数据集
        for (var i = 0; i < len; i++) {
            // 获取key 索引从0开始
            var getKey = localStorage.key(i)
            // 获取key对应的值
            var getVal = localStorage.getItem(getKey)
            // 放进数组
            arr[i] = {
                'key': getKey,
                'val': getVal,
            }
        }
        return arr
    }
}

export default storage