vueストレージstorgeにブール値を含むソリューション


vueストレージstorgeにはブール値が含まれています。
今日は一つの問題が発生しました。バックグラウンドから戻ってきたtrueとfalseをstorgeに預けて、この値を格納して論理的に判断します。
locastorgeにデータを保存すると、セーブしたbook値が文字列になります。最初に保存したbollan値ではありません。
在这里插入图片描述
文字列になりました。
どう解決しますか?
一:先端を一回転化する

if (localStorage.getItem('   ') == 'true') {
		//         
		'   ' = true
}
あるいはセーブする時は、ブーメラン値ではなく、数字や他のもので代用して判断すればいいです。

//        true
if (true) {
	localStorage.setItem('   ', 1)
}else {
	localStorage.setItem('   ', 2)
}
//       
if (localStorage.getItem('   ') == 1) {
	//     
}else {
	//     
}
locastorgeブール値の一次ピット
問題の説明
最近の仕事では、locastorgeを使って、いくつかの共有変数を貯蓄しています。結果として、ブール値を保存する時、多くの問題に遭遇しました。
一般的には、以下のようにアクセスします。

localstorage.setItem('key', value);// 
localstorage.getItem('key');// 
しかし、ブール型のデータを記憶する際には、locastorgeに記憶されているブーメランのデータが文字列になっているため、「true」=trueおよび「false」=false、「true」=falseの表示がfalseであるため、何度も試してみましたが、問題点が見つかりませんでした。
最終解決方法
locastorgeまたはsessionstogeがブール値データを記憶すると、取ったデータは文字列'true''false'となり、このタイプのデータを記憶する時にvalueを0,1に設定し、値を取る時にNumber(locastorge.getItem('key')を使って、その後の判定を行うことを推奨する。
具体的なコードは以下の通りです。
保存値:

if (this.isChecked) {
      //0:checked
      localStorage.setItem("checked",0);
} else {
       //1:not checked
       localStorage.setItem("checked",1);
}      
値を取る:

getFlag:function(){
    var flag=Number(localStorage.getItem('checked'));
    if(flag==0){
         this.flag=true;
     }else if(flag==1){
          this.flag=false;
     }
}
まとめ:
local Strageとsession Storrageは文字列タイプのオブジェクトしか記憶できません。JSでよく使われている配列やオブジェクトは直接保存できません。
JSONオブジェクトから提供されるパーミッションとストリングifyによって他のデータタイプを文字列に変換してstorgeに格納すればいいです。
コードは以下の通りです
保存値:

localStorage.setItem("flag_data",JSON.stringify(flagData));
値を取る:

var flag_data=JSON.parse(localStorage.getItem("flag_data"));
以上は個人の経験ですので、参考にしていただければと思います。