Skip to content

vue 项目封装 storage

新建 setting.js 文件

javascript
const settings = {
    "app": {
        "storagePrefix": "fa_",
    },
}

export default settings
const settings = {
    "app": {
        "storagePrefix": "fa_",
    },
}

export default settings

新建 storage.js文件

javascript
import settings from '@/settings'

const storage = {
    local: {
        has: key => {
            return Object.prototype.hasOwnProperty.call(localStorage, `${settings.app.storagePrefix}${key}`)
        },
        get: key => {
            return localStorage.getItem(`${settings.app.storagePrefix}${key}`)
        },
        set: (key, value) => {
            localStorage.setItem(`${settings.app.storagePrefix}${key}`, value)
        },
        remove: key => {
            localStorage.removeItem(`${settings.app.storagePrefix}${key}`)
        },
        clear: () => {
            localStorage.clear()
        }
    },
    session: {
        has: key => {
            return Object.prototype.hasOwnProperty.call(sessionStorage, `${settings.app.storagePrefix}${key}`)
        },
        get: key => {
            return sessionStorage.getItem(`${settings.app.storagePrefix}${key}`)
        },
        set: (key, value) => {
            sessionStorage.setItem(`${settings.app.storagePrefix}${key}`, value)
        },
        remove: key => {
            sessionStorage.removeItem(`${settings.app.storagePrefix}${key}`)
        },
        clear: () => {
            sessionStorage.clear()
        }
    }
}

export default storage
import settings from '@/settings'

const storage = {
    local: {
        has: key => {
            return Object.prototype.hasOwnProperty.call(localStorage, `${settings.app.storagePrefix}${key}`)
        },
        get: key => {
            return localStorage.getItem(`${settings.app.storagePrefix}${key}`)
        },
        set: (key, value) => {
            localStorage.setItem(`${settings.app.storagePrefix}${key}`, value)
        },
        remove: key => {
            localStorage.removeItem(`${settings.app.storagePrefix}${key}`)
        },
        clear: () => {
            localStorage.clear()
        }
    },
    session: {
        has: key => {
            return Object.prototype.hasOwnProperty.call(sessionStorage, `${settings.app.storagePrefix}${key}`)
        },
        get: key => {
            return sessionStorage.getItem(`${settings.app.storagePrefix}${key}`)
        },
        set: (key, value) => {
            sessionStorage.setItem(`${settings.app.storagePrefix}${key}`, value)
        },
        remove: key => {
            sessionStorage.removeItem(`${settings.app.storagePrefix}${key}`)
        },
        clear: () => {
            sessionStorage.clear()
        }
    }
}

export default storage

然后在需要使用到 storage 的地方引入:

javascript
import storage from '@/utils/storage'
import storage from '@/utils/storage'

这个类封装了 setItem()getItem()removeItem()clear() 方法,同时还增加了一个 has() 方法用来判断对象是否存在:

javascript
// localStorage
storage.local.has(key)
storage.local.get(key)
storage.local.set(key, value)
storage.local.remove(key)
storage.local.clear()

// sessionStorage
storage.session.has(key)
storage.session.get(key)
storage.session.set(key, value)
storage.session.remove(key)
storage.session.clear()
// localStorage
storage.local.has(key)
storage.local.get(key)
storage.local.set(key, value)
storage.local.remove(key)
storage.local.clear()

// sessionStorage
storage.session.has(key)
storage.session.get(key)
storage.session.set(key, value)
storage.session.remove(key)
storage.session.clear()

如有转载或 CV 的请标注本站原文地址