vue-django
Version:
个人实验项目, 本框架的目标是借鉴并超越django admin的自动化思想, 实现UI前端的极简快速定制开发
48 lines (41 loc) • 1.03 kB
JavaScript
/**
* Created by denishuang on 2020/2/11.
*/
import {throttle} from 'lodash'
export default function (key, interval) {
function saveAtOnce (v) {
try {
localStorage.setItem(key, v)
} catch (e) {
if (e.name === 'QuotaExceededError') {
console.warn('超出本地存储限额!')
// 如果历史信息不重要了,可清空后再设置
localStorage.clear()
localStorage.setItem(key, v)
}
}
}
let save = throttle(saveAtOnce, interval || 1000)
function destroy () {
localStorage.removeItem(key)
}
function read () {
return localStorage.getItem(key)
}
return {
save,
read,
saveAtOnce,
destroy
}
}
export function RouterMemory(router) {
return {
getKey(k) {
return `${router.currentRoute}:${k}`
},
read(key) {
localStorage.getItem(this.getKey(key))
}
}
}