不管存储时,localStorage.setItem()存的是字符串还是布尔值,取出来的时候都自动被转换成了字符串,这就造成在对boolen类型做判断时,出现bug的情况。
所以我在utils公共js里面写了一个方法,只要每次取数据时调用这个方法,就可以取出你想要的字符串,布尔,或者对象类型。
// utils.js
getLocalStorage(name, type) {
let data = localStorage.getItem(name)
if (type === 'number') {
return Number(data)
}
if (type === 'boolen') {
if (data === 'false') {
data = false
} else {
data = true
}
return data
}
if(type === 'object'){
data = JSON.parse(data)
return data
}
return data
}
用的时候:
this.isLogin = this.$utils.getLocalStorage("isLogin ", "boolen");
this.giftIndex = this.$utils.getLocalStorage("index", "number");
this.userInfo= this.$utils.getLocalStorage("userInfo", "object");
console.log("打印----", typeof this.isLogin , typeof this.giftIndex); // boolean number
网友评论