Vue ページ状態の永続化の詳細な説明

Vue ページ状態の永続化の詳細な説明

要件: 左のツリーと右のテーブル。組織ツリーでノードを選択した後、詳細ページに入り、戻ったときにそのノードを選択したままにします。他のクエリ条件でも状態を維持する必要があります。

アイデア: vuex と localStorage を組み合わせてデータをキャッシュします。ツリーノードまたはクエリボタンをクリックすると、データが vuex に保存され、localStorage にも保存されます。ページがロールバックすると、localStorage のデータが vuex に配置されます。ページコードでは、vuex にデータが保存されているかどうかを判断します。保存されている場合は、直接使用されます。保存されていない場合は、デフォルトで初期データが使用されます。ページナビゲーションルートがジャンプすると、キャッシュされたページデータはクリアされます。

コード:

ツリーノードをクリックすると、ID が vuex に保存されます。ディスパッチによるアクションのトリガー

this.$store.dispatch('SetDeviceFaultId', data.id)

vuexのアクションでは、コミットすることでミューテーションのメソッドをトリガーします。

RemoveDeviceFaultId({ commit }) { //commit('REMOVE_DEVICEFAULTID') は後でデータをクリアするために使用されます。
},
SetDeviceManageId({コミット}, id) {  
    コミット('SET_DEVICEMANAGEID', id);
},

mutations : データを変更する

REMOVE_DEVICEFAULTID: (状態) => {
      state.devicFaultId = null です     
      ストレージを削除します。
},
SET_DEVICEMANAGEID: (状態、デバイス管理ID) => {
      state.deviceManageId = デバイス管理Id
      ストレージを設定します('deviceManageId', deviceManageId);
}

state: ページが最初に作成されたときに localStorage からキャッシュされたデータを取得します

デバイス障害ID: Storage.get('デバイス障害ID'),

詳細ページに入り戻る

this.params.organizeId = this.$store.state.tree.devicFaultId ? this.$store.state.tree.devicFaultId : res.data[0].id;

他のルートをクリックするときは、キャッシュされたデータをクリアすることを忘れないでください

this.$store.dispatch('RemoveDeviceFaultId')

補充:

storage.jsコード

vuexに導入した後はStorage.setを通じて利用することができます

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • vuexサードパーティパッケージを使用してデータの永続性を実装する方法
  • Vuex データの永続性を実装するためのアイデアとコード
  • Vuexはデータ状態の永続性を実装します
  • Vuex 永続化プラグイン (vuex-persistedstate) は、更新データの消失の問題を解決します。
  • Vue プロジェクトにおける永続ストレージデータの実装コード

<<:  ホストサービスにアクセスするDockerでのサービスの実装

>>:  ブロックレベル要素、インライン要素、可変要素の概要

推薦する

Vueは小さなカウントダウン機能を実装します

多くのプロジェクトでは、検証コードの送信など、カウントダウン機能を実装する必要があります。ここで、簡...

Docker での RocketMQ の詳細なインストールと使用

RocketMQ イメージを検索するには、Docker の hub.docker.com で検索する...

linuxdeployqt を使用して Ubuntu で Qt プログラムをパッケージ化する問題を解決する

いくつかの Qt インターフェース プログラムを作成しましたが、Qt 環境がインストールされていない...

LinuxベースのLVMシームレスディスク水平拡張の詳細な説明

環境名前財産CPU 5650 円メモリ4Gディスク20G+4TB この時点で、サーバーにはすでに次の...

CSSは固定比率のブロックレベルコンテナを簡単に実装できる

H5 レイアウトを設計する場合、通常はバナーに遭遇することになります。例えば、2:1 で表示したい場...

MySQLのslave_exec_modeパラメータの詳細な説明

今日、slave_exec_modeというパラメータを偶然見ました。マニュアルの説明から、このパラメ...

React antdはフォームの動的な増減を実現します

以前、動的フォームを記述しているときに落とし穴に遭遇しました。インデックスの添え字をキーとして使用す...

sql_mode を変更する際の MySQL エラーの解決方法

目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...

MySQLカスケードレプリケーションの実装方法の例

いわゆるカスケード レプリケーションでは、マスター サーバーが 1 つのスレーブ サーバーにのみデー...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

スケーラブルな列の完全な例を実現するための Ant 設計 Vue テーブル

ant-design-vue テーブルのスケーラブルな列の問題に対する完璧なソリューション。固定列と...

MySQL シリーズ 3 基礎

目次チュートリアルシリーズ1. MySQL の紹介2. MySQLの開発履歴3. MariaDBの基...

Facebookの情報アーキテクチャの分析

<br />原文: http://uicom.net/blog/?p=762 Faceb...

初心者向けWebサイト構築ガイド⑥:FlashFXPの詳しい使い方

今日は、サイトの設定やウェブサイトのアップロードなど、FlashFXP の最も基本的な機能を紹介しま...