Vuex の状態を robinvdvleuten/vuex-persistedstate で永続化
はじめに
Vuex の状態を robinvdvleuten/vuex-persistedstate で localStorage などに永続化する方法。
TL;DR
npm i vuex-persistedstateでインストールpluginsで設定するだけで OKlocalStorage以外を使いたい場合はstorageオプションで設定sessionStorage,Cookie,localStorage+ 暗号化, etc
目次
環境・条件
1 | $ sw_vers |
詳細
セットアップ
npm i でインストール。
1 | $ npm i vuex-persistedstate |
src/store/index.js などに plugins の記述を追加。各種オプションは createPersistedState([options]) - API を参照。
1 | import Vue from 'vue' |
使い方
セットアップ(plugins の設定)のみすれば、Vuex への保存処理を行うと同時に localStorage などに保存され、リロードなどした際の初期値として参照されるようになる。(なので、ユーザー側で何かを意識する必要は無し)
保存先変更
デフォルトでは localStorage に保存される。他の保存先を使いたい場合は storage オプションを指定する。
getItem, setItem, removeItem を持つ Object であれば OK。無ければ一緒に設定する。
sessionStorage
sessionStorage を使う場合。
1 | export default new Vuex.Store({ |
Cookie
Cookie (js-cookie) を使う場合。
1 | import * as Cookies from "js-cookie"; |
localStorage + 暗号化
softvar/secure-ls などを使うことで localStorage に暗号化して保存できる。
細かいオプションは API Documentation - softvar/secure-ls を参照。
1 | import { Store } from "vuex"; |
注意事項
LocalForage の項に書かれているが、localForage/localForage のようにメソッドが非同期のものを storage オプションに渡すのはダメな模様。
まとめ
npm i vuex-persistedstateでインストールpluginsで設定するだけで OKlocalStorage以外を使いたい場合はstorageオプションで設定sessionStorage,Cookie,localStorage+ 暗号化, etc
参考文献
関連記事
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- Vue で子コンポーネントのメソッドをコールする
- apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
- Chart.js で X軸, Y軸の値をカスタマイズ
- Chart.js(vue-chartjs) で凡例の一部を非表示にする方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア