vuex能夠進行全局的狀態管理,但刷新後刷新後數據會消失,這是咱們不肯意看到的。怎麼解決呢,咱們能夠結合本地存儲作到數據持久化,也能夠經過插件- vuex-persistedstate。
歡迎來點點個人我的博客
javascript
方法vue
這樣state就會和存儲一塊兒存在而且與vuex同步
java
問題git
插件的原理其實也是結合了存儲方式,只是統一的配置就不須要手動每次都寫存儲方法
github
使用方法vuex
npm install vuex-persistedstate --save
在store下的index.js中npm
import createPersistedState from "vuex-persistedstate" const store = new Vuex.Store({ // ... plugins: [createPersistedState()] })
默認存儲到localStorage數組
import createPersistedState from "vuex-persistedstate" const store = new Vuex.Store({ // ... plugins: [createPersistedState({ storage: window.sessionStorage })] })
想使用cookie同理
默認持久化全部statecookie
import createPersistedState from "vuex-persistedstate" const store = new Vuex.Store({ // ... plugins: [createPersistedState({ storage: window.sessionStorage, reducer(val) { return { // 只儲存state中的assessmentData assessmentData: val.assessmentData } } })]
譬如:vuex提示的插件和持久化的插件一塊兒使用,配置以下session
import createPersistedState from "vuex-persistedstate" import createLogger from 'vuex/dist/logger' // 判斷環境 vuex提示生產環境中不使用 const debug = process.env.NODE_ENV !== 'production' const createPersisted = createPersistedState({ storage: window.sessionStorage }) export default new Vuex.Store({ // ... plugins: debug ? [createLogger(), createPersisted] : [createPersisted] })
plugins要是一個一維數組否則會解析錯誤
點擊跳轉插件GITHUB地址