vue数据存储localstorage,vue localstorage存储

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: