js文件封装
/**
* 判断是否为空
*/
function validatenull(val) {
if (typeof val === 'boolean') {
return false
}
if (typeof val === 'number') {
return false
}
if (val instanceof Array) {
if (val.length == 0) return true
} else if (val instanceof Object) {
if (JSON.stringify(val) === '{}') return true
} else {
if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true
return false
}
return false
}
/**
* 设置key名
*/
const keyName = 'qxh' + '_'
/**
* 存储localStorage
*/
export const setStore = (params = {}) => {
let {
name,
content,
type,
} = params
name = keyName + name
let obj = {
dataType: typeof (content),
content: content,
type: type,
datetime: new Date().getTime()
}
if (type) window.sessionStorage.setItem(name, JSON.stringify(obj))
else window.localStorage.setItem(name, JSON.stringify(obj))
}
/**
* 获取localStorage
*/
export const getStore = (params = {}) => {
let {
name,
debug
} = params
name = keyName + name
let obj = {},
content
obj = window.sessionStorage.getItem(name)
if (validatenull(obj)) obj = window.localStorage.getItem(name)
if (validatenull(obj)) return
try {
obj = JSON.parse(obj)
} catch {
return obj
}
if (debug) {
return obj
}
if (obj.dataType == 'string') {
content = obj.content
} else if (obj.dataType == 'number') {
content = Number(obj.content)
} else if (obj.dataType == 'boolean') {
content = eval(obj.content)
} else if (obj.dataType == 'object') {
content = obj.content
}
return content
}
/**
* 删除localStorage
*/
export const removeStore = (params = {}) => {
let {
name,
type
} = params
name = keyName + name
if (type) {
window.sessionStorage.removeItem(name)
} else {
window.localStorage.removeItem(name)
}
}
/**
* 获取全部localStorage
*/
export const getAllStore = (params = {}) => {
let list = []
let {
type
} = params
if (type) {
for (let i = 0
list.push({
name: window.sessionStorage.key(i),
content: getStore({
name: window.sessionStorage.key(i),
type: 'session'
})
})
}
} else {
for (let i = 0
list.push({
name: window.localStorage.key(i),
content: getStore({
name: window.localStorage.key(i),
})
})
}
}
return list
}
/**
* 清空全部localStorage
*/
export const clearStore = (params = {}) => {
let {
type
} = params
if (type) {
window.sessionStorage.clear()
} else {
window.localStorage.clear()
}
}
设置常量定义key值,后期需要修改只需要改这一个文件(下面用到的constant.js)
export default {
storageUseInfoKey:'user_info'
}
定义独立的方法进行使用,可根据自己需要创建方法
import {
getStore,
removeStore,
setStore
} from '@/utils/local-storage'
import constant from '../const/constant'
export function getToken() {
return getStore({
name: constant.storageUseInfoKey
})
}
export function setToken(token) {
return setStore({
name: constant.storageUseInfoKey,
content: token
})
}
export function removeToken() {
return removeStore({
name: constant.storageUseInfoKey
})
}
在文件中使用
import {
getToken
} from '@/utils/auth'
const hasToken = getToken()