vuex和localStorage结合使用如何保持数据同步?

export default new Vuex.Store({
    mutations: {
        set_a(state, e) => {
            sessionStorage.setItem('a', JSON.stringify(e))
        }
    },
    getters:{
        get_a(state) => {
          return JSON.parse(sessionStorage.getItem('a'))
        }
    }
})

我这么写会导致调用set_a后,页面的a并没有保持同步,但是sessionStorage数据是更新的

目前的解决方案是加一个state,每次更新了 a ,就顺带的把 state.a 设置一个新的随机数

请问有什么合理的解决方案吗?

阅读 5.2k
1 个回答

你这个是set_a的时候应该判断a是否为空或者什么的在拿缓存, get一直拿的是state的才对

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题