Vue: localStorage封装
App.vue
"heart" @click="toggleFlag">
class="{active:flag}">
class="{active:flag}">
localStorage.ts
const namespace: string = 'zax'
export function setItem(key: string, value: any) {
console.log(key, value)
let storage = window.localStorage.getItem(namespace)
if (! storage) {
storage = {}
} else {
storage = JSON.parse(storage) || {}
}
storage[key] = value
window.localStorage.setItem(namespace, JSON.stringify(storage))
}
export function getItem(key: string, defaultValue: any) {
let storage = window.localStorage.getItem(namespace)
if (! storage) {
storage = {key: defaultValue}
window.localStorage.setItem(namespace, JSON.stringify(storage))
return defaultValue
}
storage = JSON.parse(storage)
return storage[key]
}