vuex默认情况下数据存储在内存,刷新浏览器后数据变成初始状态 vuex-persistedstate可以让vuex中的数据持久保存在sessionstorage或localstorage中,刷新后不会变成初始状态 引入依赖
npm i - S vuex- persistedstate
import Vue from 'vue'
import Vuex from 'vuex'
import persistedState from 'vuex-persistedstate'
export default new Vuex. Store ( {
plugins: [ persistedState ( ) ]
} )
vuex-persistedstate默认使用localStorage来存储数据,如果要使用sessionStorage:
plugins: [ persistedState ( { storage: window. sessionStorage } ) ]
1. 引入
npm i js- cookie
2. 使用
import * as Cookies from 'js-cookie'
export default new Vuex. Store ( {
plugins: [
persistedState ( {
storage: {
getItem : key => Cookies. get ( key) ,
setItem : ( key, value ) => Cookies. set ( key, value, { expires: 7 } ) ,
removeItem : key => Cookies. remove ( key)
} ,
} )
]
} )
export default new Vuex. Store ( {
plugins: [
persistedState ( {
reducer ( val ) {
return {
count: val. count
}
}
} )
]
} )
const test = {
state: {
name: 'moduleA' ,
type: 'module A'
} ,
}
export default new Vuex. Store ( {
modules: {
test
} ,
plugins: [
persistedState ( {
reducer ( val ) {
return {
name: val. test. name
}
}
} )
]
} )