网页刷新后Vuex后数据丢失处理问题

88 阅读1分钟

网页刷新后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) {}
  }
}