Vueストレージにはブール値のソリューションが含まれています

Vueストレージにはブール値のソリューションが含まれています

Vueはブール値でストレージを保存します

今日、問題に遭遇しました。バックグラウンドから返された真偽の値をストレージに保存し、保存された値を使用して論理的な判断を行う必要がありました。しかし、判断は常に間違っていました。情報を確認した後、私は発見しました

ローカルストレージにデータを保存する場合、保存されたブール値は、最初に保存されたブール値ではなく、文字列になります。

ここに画像の説明を挿入

すべては文字列に変換されました

それで、どうやって解決するのでしょうか?

1: フロントエンドで変換が実行される

localStorage.getItem('boolean') == 'true'の場合{
		// 新しい値を再割り当てします 'ブール値' = true
}

あるいは保存するときにブール値を使って保存せず、代わりに数値や他の値を使ってから判断してください。

// 背景から返される値は true です
(真)の場合{
	localStorage.setItem('ブール値', 1)
}それ以外 {
	ローカルストレージ.setItem('boolean', 2)
}
// 必要な場合 if (localStorage.getItem('Boolean value') == 1) {
	// イベントを処理する }else {
	// イベントを処理する}

ローカルストレージにブール値を保存する際の落とし穴

問題の説明

最近、職場でいくつかの共有変数を保存するために localstorage を使用しましたが、ブール値を保存するときに多くの問題が発生しました。

一般的なアクセス方法は次のとおりです。

localstorage.setItem('key', value);//保存 localstorage.getItem('key');//取得

しかし、ブールデータを保存する場合、ローカルストレージに保存されたブールデータが文字列に変換されるため、「true」=true および「false」==false、「true」==false はすべて false として表示され、何度も試行しても問題が見つかりません。

最終解決策

localstorage や sessionstorage にブール型データを格納する場合、取得されるデータは文字列 'true' 'false' になります。このタイプのデータを格納する場合は値を 0 または 1 に設定し、値を取得する場合は Number (localstorage.getItem('key')) を使用して、後続の判定操作を実行することをお勧めします。

具体的なコードは次のとおりです。

保存された値:

チェックされている場合
      //0: チェック済み
      localStorage.setItem("チェック済み",0);
} それ以外 {
       //1: チェックなし
       localStorage.setItem("チェック済み",1);
}

価値:

getFlag:関数(){
    var flag = Number (localStorage.getItem ('checked'));
    if(フラグ==0){
         this.flag を true に設定します。
     }そうでない場合(フラグ==1){
          this.flag=false;
     }
}

要約:

localStorage と sessionStorage はどちらも文字列オブジェクトのみを保存でき、JS でよく使用される配列やオブジェクトを直接保存することはできません。

JSON オブジェクトが提供する parse メソッドと stringify メソッドを使用して、他のデータ型を文字列に変換し、ストレージに保存することができます。

コードは次のとおりです。

保存された値:

localStorage.setItem("flag_data",JSON.stringify(flagData));

価値:

var flag_data = JSON.parse(localStorage.getItem("flag_data"));

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue プロジェクトで localStorage または sessionStorage の変更を監視する方法
  • localStorage ストレージ情報に基づく Vue のコード例
  • Vueはパンくずリストを実装するためにローカルストレージを使用する
  • VueはlocalStorageローカルキャッシュを使用して、検証コードをクリアせずに更新する機能を実装します。
  • Vue で localStorage をレスポンシブにする方法 (思考実験)
  • Vue セッションストレージに基づいて検索ボックスの検索コンテンツを保持する

<<:  Bツリー挿入プロセスの概要

>>:  KVM 仮想マシンのオンライン ホット マイグレーションを実装する方法 (画像とテキスト)

推薦する

jsは赤い封筒の順序と量を指定するアルゴリズムを実装します

この記事では、指定された赤い封筒の順序と金額を実装するためのjsの具体的なコードを共有します。具体的...

セマンティックタグを使用して、IE6、7、8と互換性のあるHTMLを記述します。

HTML5 では、ヘッダー、フッター、ナビゲーションなどのセマンティック タグが追加されているため...

プロフェッショナルおよび非プロフェッショナルのウェブデザイン

まず、Web ページのスタイルの形成は、主に Web ページのレイアウト設計、ページの色処理、画像と...

LayUI+Shiroは動的なメニューを実装し、メニュー拡張の例を記憶します

目次1. Maven 依存関係2. メニュー関連クラス1. メインメニュー2. サブメニュー3. S...

HTML タグのリストと使用方法

HTMLタグのリストマークタイプ名前または意味効果述べるファイルのタグ付け<HTML> ...

HTML タグ tbody の使い方と説明

tbody 要素は、thead 要素および tfoot 要素と組み合わせて使用​​する必要があります...

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...

Vuex のモジュール化と名前空間の例のデモ

1. 目的:コードの保守が容易になり、さまざまなデータの分類が明確になります。 2. store/i...

Vue で動的に読み込まれたローカル画像を処理する方法

問題を見つける今日は、vue ファイルにローカル画像を導入する際に問題が発生したので、この記事を書き...

Nodejs 探索: シングルスレッドの高並行性の原理を深く理解する

目次序文一目でわかる建築オペレーティングシステムとの対話シングルスレッドイベント駆動/イベントループ...

Vue バックエンド管理システムのページング機能の実装例

この記事では、主に Vue バックグラウンド管理システムのページング機能の実装を紹介し、次のように共...

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...

iframe ページで js 関数を呼び出すには js を使用します

最近、私は毎日論文提案に取り組んでいます。自分のスキルを発揮して、再びWebをデザインしたくてうずう...

Angularが予期しない例外エラーを処理する方法の詳細な説明

前面に書かれたコードがどれだけ適切に記述されていても、すべての可能性のある例外を完全に処理することは...

HTMLページでチェックボックスを操作する方法

チェックボックスは Web ページで非常によく使用されます。e コマースの Web サイトでもプラッ...