页面刷新后,想恢复刷新之前的某些数据状态,我们总是习惯于将数据放在浏览器的sessionStorage和localStorage中。但是有个新的插件默认存入缓存,很好的解决了页面刷新的问题。
一:安装依赖
npm install vuex-persistedstate --save
二:在store下的index.js中,引入并配置
import Vue from 'vue'
import Vuex from 'vuex'
//引入插件
import createPersistedState from "vuex-persistedstate";
Vue.use(Vuex)
export default new Vuex.Store({
state: {
userNames:"",
count: 0
},
mutations: {
},
actions: {
},
modules: {
},
// 会自动保存创建的状态
//默认存储到localStorage
plugins: [createPersistedState()]
})
注意:
默认存储到localStorage
想要存储到sessionStorage,配置如下
plugins: [createPersistedState({
storage: window.sessionStorage
})]
存在cookie中时 plugins的配置如下:
plugins: [
persistedState({
storage: {
getItem: key => Cookies.get(key),
setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
removeItem: key => Cookies.remove(key)
}
})
]
指定某个需要持久化的数据
plugins: [createPersistedState({
storage: window.sessionStorage,
reducer(value) {
return {
// 只储存state中的goodList
assessmentData: value.goodList
}
}
})]