LoginSignup
2
6

More than 3 years have passed since last update.

Vuex-ORMとvuex-persistedstateの連携で半永続的データベースに!

Posted at

みなさんこんにちは!やっしー(@YaCpotato )です!

今回は、Vuex-ORMを使って製作物(たぶんプロジェクト管理ツール?)を作るにあたり、データの保持に一役買ってくれたvuex-persistedstateを紹介しようと思います!

Vuex-ORMについてはこちら
https://github.com/vuex-orm

vuex-persistedstateについてはこちら
https://github.com/robinvdvleuten/vuex-persistevuexdstate

vuex-persistedstateとは

vuexのstoreの情報(変数?)をブラウザのCookieに保存することで、リロード等してもvuex内のデータが保持できるようになる

導入方法

驚くほど簡単でした

npm install --save vuex-persistedstate

でインスコしたら、
store.jsを

import Vue from 'vue'
import Vuex from 'vuex'
import VuexORM from '@vuex-orm/core'
import Project from './model/Project'
import Task from './model/Task'
import Current from './model/Current'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

const database = new VuexORM.Database()

database.register(Project)
database.register(Task)
database.register(Current)

const store = new Vuex.Store({
  plugins: [VuexORM.install(database)]
})

export default store

この状態(vuex-persistedstateを使ってない状態)から、

import Vue from 'vue'
import Vuex from 'vuex'
import VuexORM from '@vuex-orm/core'
import Project from './model/Project'
import Task from './model/Task'
import Current from './model/Current'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

const database = new VuexORM.Database()

database.register(Project)
database.register(Task)
database.register(Current)

const store = new Vuex.Store({
  plugins: [VuexORM.install(database),
            createPersistedState({ storage: window.sessionStorage })]
})

export default store

変わっているのは、const storeの宣言時のpluginsに書き足している、

createPersistedState({ storage: window.sessionStorage })

だけです。

これだけで、Vuexのstoreの情報が、リロードしても消えなくなりました!

VuexをDBとして使うVuex-ORMとの相性は抜群??

でもやっぱ、プロジェクト管理なら、ソースコードにgitを使うだろうから、リポジトリにjsonファイルなり作成させてもらって、そこで管理する方がいいのかななんて思ったりします。

では今日はこの辺で失礼いたします!

ソースコードはgithubに置いていますがまだ開発中のものですのであしからず
https://github.com/YaCpotato/laravueStudy

よろしければTwitterのフォローもお願いします。
コードレビューとか送ってくれたらとても喜びます。
https://twitter.com/Yasshieeee

良い一週間を!

ーーーーーーーーーーーーーー
Name:やっしー
大学生。新卒即戦力という矛盾を達成するため日々勉強中。2020年卒業見込み。
研究:少ないデータでの機械学習(一般物体認識、GAN等)
言語:Vuejs,Nuxt,Vuex, Django,Laravel
TwitterID: @Yasshieeee
githubID: @YaCpotato
ーーーーーーーーーーーーーー

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6