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 で、初期値の設定と選択状態のクリア