vuexでリロードされても情報を永続化できるvuex-persistedstateの使い方

2021年6月11日Vue.js

vuexを使っていてリロードされた場合、表示しておいてほしい情報でもstateがリセットされてしまって、表示できなくなります。 vuex-persistedstateというプラグインを使うとstateの情報を永続化できます。 vuex-persistedstateの使い方をまとめました。

vuexでリロードされても情報を永続化できるvuex-persistedstateの使い方

githubの公式

https://github.com/robinvdvleuten/vuex-persistedstate 解説がわかりやすい記事 https://qiita.com/_masa_u/items/b58b92c283f4e770e094

インストール


# yarn
yarn add vuex-persistedstate
# npm
npm install --save vuex-persistedstate

インポート

src/store/index.jsにまずはインポートします。
import createPersistedState from 'vuex-persistedstate'
そして、プラグインを設定します。
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
getters: {},
plugins: [createPersistedState(
    { // ストレージのキーを指定
      key: 'appName',
      // ストレージの種類を指定
      storage: window.sessionStorage
    }
)]
keyはデフォルトでは、vuexになっています。 storageはローカルストレージがデフォルトです。

modulesを使っている場合

plugins: [createPersistedState( { // ストレージのキーを指定 key: 'appName’, paths: [ 'auth’, 'playlists’ ], // ストレージの種類を指定する。デフォルトではローカルストレージ storage: window.sessionStorage } )] modulesを使っている場合、管理対象のステートを指定します。pathsを書かない時は`modules`に書いたモジュールに含まれるステート全てが対象となります。

永続化の解除

vuex-persistedstateを使うと簡単にデータの永続化ができる反面、ずっと残ってしまうトラブルが発生します。 strageをsessionStrageを利用すると、セッションが切れたり、タブやブラウザを閉じたら消えますが、そうしない場合は情報が残ってしまい、それが問題になるケースが考えられます。 そのため、vuex-persistedstateを使ったらstateの状態を初期にリセットしておくといいでしょう。 vuex-persistedstateで永続化したstateデータを初期化する方法

Vue.js

Posted by devsakaso