网页刷新后Vuex数据丢失或者恢复了默认值,我们可以通过localStorage来组合使用。
在store文件夹的index文件里面
1、首先我们在改变Vuex里面值的时候,在localStorage也存一份,在使用Vuex取值的时候优先在localStorage里面取值。
2、但是某些浏览器可能不支持localStorage,所以要try catch一下,有一点要特别注意的是,try catch的catch和后面的(e)之间有个空格一定不能忘,否则会报错。
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
let defaultCity = '上海'
try {
if (localStorage.city) {
defaultCity = localStorage.city
}
} catch (e) {}
export default new Vuex.Store{
changeCity (state, city) {
state.city = city
try {
localStorage.city = city
} catch (e) {}
}
}