vuexの強制リフレッシュによるデータ損失問題の分析

vuexの強制リフレッシュによるデータ損失問題の分析

vuex 永続状態

  1. 基本原則: すべての vuex データをローカルストレージに保存し、ページが更新されたときにキャッシュからデータを取得して vuex に格納する
  2. ダウンロード: $ npm install vuex-persistedstate -S
  3. ストアにプラグインを導入する
'vuex-persistedstate' から persistedState をインポートします。
定数ストア = 新しい Vuex.Store({
  // ...
  プラグイン: [persistedState()]
})

vuex-persistedstateデフォルトでストレージにlocalStorageを使用します。sessionStorageを使用する場合は、次の設定を使用できます。

「vuex-persistedstate」からpersistedStateをインポートします。
定数ストア = 新しい Vuex.Store({
  // ...
  プラグイン: [persistedState ({
      ストレージ: window.sessionStorage
  })]
})
  • クッキーを使用する場合は、次の設定を使用できます。
  • ダウンロード: $ npm install js-cookie -S
'js-cookie' から Cookies をインポートします。
「vuex-persistedstate」からpersistedStateをインポートします。
定数ストア = 新しい Vuex.Store({
  // ...
  プラグイン: [persistedState ({
      ストレージ:
		getItem: キー => Cookies.get(キー),
		setItem: (キー、値) => Cookies.set(キー、値)、
		削除アイテム: キー => Cookies.remove(キー)
	}
  })]
})

セキュア-ls

  • 暗号化されたストレージ
  • ユーザー情報を vuex に保存すると、使用がはるかに便利になりますが、vuex がページを更新するときにデータが失われる問題を解決するために、 vuex-persistedstateプラグインが使用されます。vuex vuex-persistedstate暗号化されず、ユーザーの情報がキャッシュに公開されます。
  • これは非常に危険なので、ストレージを暗号化するにはsecure-lsを使用する必要があります。
  • ダウンロード: $ npm install secure-ls -S
「vue」からVueをインポートします。
「vuex」からVuexをインポートします。
'secure-ls' から SecureLS をインポートします。
「vuex-persistedstate」からpersistedStateをインポートします。

const ls = 新しいSecureLS({
	encodingType: "aes", // 暗号化方式 isCompression: false, // データ圧縮を有効にするかどうか encodingSecret: "old-beauty" // 
});

Vue.js で Vuex をビルドします。

デフォルトの新しいVuex.Storeをエクスポートします({
	...
	プラグイン: [persistedState({
		// キー: "123123", // ストレージに保存するキー
		ストレージ:
			getItem: キー => ls.get(キー),
			setItem: (キー、値) => ls.set(キー、値)、
			削除アイテム: キー => ls.remove(キー)
		}
	})],
});

[注意] vuex-persist(不兼容ie) vuex-persistedstate

これで、vuex 強制データ損失に関するこの記事は終了です。vuex データ損失に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vuex ページの更新後にデータを失う方法
  • vuex が複雑なパラメータ (オブジェクト配列など) を格納するときにデータ損失を更新するソリューション
  • vuex ページの更新によるデータ損失の解決策
  • vuex リフレッシュ後のデータ損失の解決策
  • vuex ページを更新するときにデータ損失が発生する問題に対する 4 つの解決策

<<:  mysql は sql ファイルを実行し、エラーを報告します エラー: 不明なストレージ エンジン 'InnoDB' ソリューション

>>:  Linux周辺ファイルシステムのカスタマイズ方法

推薦する

ubuntu15.10 での hadoop2.7.2 の詳細なインストールと設定

Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...

VMware インストール エラー VMware Workstation が VMware 認証サービスを開始できませんでした

背景: SAP ECC サーバーをインストールし、XP をプレインストールしたいと考えています。XP...

CSS でよく使用されるフォントサイズ、フォント単位、行の高さの詳細な説明

px(ピクセル)ピクセルという言葉は皆さんもよくご存知だと思います。次に、この単位に関するちょっとし...

Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

序文みなさんこんにちは。私は梁旭です。職場では、システムの起動後にスクリプトやサービスを自動的に開始...

フロントエンドJavaScriptの動作原理

目次1. JavaScript エンジンとは何ですか? 2. V8エンジン3. ランタイム環境4. ...

HTML の div、td、p およびその他のコンテナーでの強制改行と非改行の実装

1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...

Ubuntu 18.04にMySQL 5.7をインストールする

この記事は MySQL 公式サイトを参考にしてまとめたものであり、遭遇したいくつかの問題も記録されて...

JavaScript クロージャの詳細

目次1. クロージャとは何ですか? 2. 閉鎖の役割序文: JavaScript部分ではクロージャが...

WeChatアプレットが検索ボックス機能を実装

この記事の例では、WeChatアプレットの検索ボックス機能を実装するための具体的なコードを参考までに...

HTML入力ファイルコントロールはアップロードされるファイルの種類を制限します

入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...

時点別のMySQLデータベース復旧実績

はじめに: 時間ポイントによる MySQL データベースの復旧どの企業にとっても、データは最も価値の...

Dockerでイメージを削除する方法

dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメー...

ウェブページのカスタム選択ボックス選択

選択ドロップダウン リスト フォームは誰もがよく知っているかもしれませんが、デフォルトのドロップダウ...

MYSQL での Truncate の使用法の詳細な説明

この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...

MySQL EXPLAIN出力列の詳細な説明

1. はじめにEXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情...