vue数据存储localstorage,vue localstorage存储
本文主要介绍了在vue中存储布尔值的解决方案,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
vue储存storage时含有布尔值
今天遇到了一个问题。我需要将后台返回的真假存储在存储中,然后用存储的值进行逻辑判断,但判断总是错误的。查阅资料后发现的。
当数据存储在localstorage中时,存储的布尔值将变成字符串,而不是最初存储的布尔值。
都变成了字符串。
那么如何解决呢?
一:前端进行一次转化
if(local storage . getitem( boolean )== true ){
//重新分配一个新值
布尔值=真
}
或者存储的时候不要用布尔值存储,用数字或者其他代替,然后判断。
//后台返回的值为真
如果(真){
LocalStorage.setItem (boolean ,1)
}否则{
LocalStorage.setItem (boolean ,2)
}
//当你需要使用它的时候
if(local storage . getitem( boolean )==1){
//处理事件
}否则{
//处理事件
}
localstorage存储布尔值的一次坑
问题描述
最近用localstorage存储了一些共享变量,结果在存储布尔值的时候遇到了很多问题。
一般来说,访问如下:
localstorage.setItem(key ,value);//保存
local storage . getitem( key );//take
但是在存储布尔型数据时,由于存储在localstorage中的布尔型数据都变成了字符串, true=true和 false==false,以及 true==false,都是false,导致多次尝试都没有发现问题;
最终解决方法
当localstorage或sessionstorage存储布尔数据时,获取的数据变成字符串 true 和 false 。存储此类数据时,建议将值设置为0和1,并使用number(本地存储。GetItem (key ))取值时,再做后续判断。
具体代码如下:
存值:
如果(this.isChecked) {
//0:已检查
localStorage.setItem(checked ,0);
}否则{
//1:未检查
localStorage.setItem(checked ,1);
}
取值:
getFlag:function(){
var flag=Number(local storage . getitem( checked );
if(flag==0){
this.flag=true
}else if(flag==1){
this.flag=false
}
}
总结:
LocalStorage和sessionStorage只能存储字符串类型的对象,不能直接存储JS中常用的数组或对象。
其他数据类型可以通过JSON对象提供的parse和stringify转换成字符串,然后存储在存储中。
代码如下:
存值:
local storage . setitem( flag _ data ,JSON . stringify(flag data));
取值:
var flag _ data=JSON . parse(local storage . getitem( flag _ data );
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。