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でのサービスの実装

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

推薦する

jsonファイルの書き方の詳細説明

目次JSONとはなぜこの技術なのでしょうか? JSONの使い方- データ形式- メモ- JSには2つ...

ノードスクリプトで自動サインインと抽選機能を実現

目次1. はじめに2. 準備3. スクリプトプロジェクトの構築4. コードの作成と実行5. まとめと...

見栄えの良い CSS カスタム スタイル (タイトル h1 h2 h3)

レンダリングBlog Gardenでよく使われるスタイル /*タイトル h1 h2 h3 スタイル*...

Vue プロジェクトにおけるトランジション コンポーネントの適用の概要

​Vue のトランジションは、アニメーション トランジションをカプセル化するコンポーネントです。一般...

Vueでショッピングカートのすべての機能を実装する簡単な方法

主な機能は次のとおりです。製品情報を追加する製品情報を変更する単一の製品を削除する複数の製品を削除す...

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...

MySQL の int、char、varchar のパフォーマンスを比較する

インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありませ...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

知らないかもしれないLinuxのファイル権限管理方法

なぜ権限管理が必要なのでしょうか? 1. コンピュータ リソースは限られているため、コンピュータ リ...

HTML 固定タイトル列、タイトル ヘッダー テーブル固有の実装コード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

ウェブデザインにおける装飾要素の応用の概要

<br />序文: このチュートリアルを読む前に、序文を注意深く読んでください。そうしな...

Mysql5.7.18 のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明

CentOS6.7にmysql5.7.18をインストールする 1. /usr/localディレクトリ...

MySQL データベース接続例外の概要 (収集する価値あり)

Centos にプロジェクトをデプロイするときに奇妙な問題が見つかりました。データベース接続で例外...

Linux システムで grub.cfg ファイルの破損を修復する手順

目次1. grub.cfg ファイルの紹介1. grub.cfg ファイルの場所2. grub.cf...