Skip to content
On this page

vuex 刷新保存数据

页面刷新导致vuex(store)里面的数据消失问题,解决思路:

通过监听页面刷新或者关闭来将 vuex 里面的数据保存到 sessionStorage 里,在页面加载时读取 sessionStorage 里的状态信息,更新 vuex 的数据。

vue
export default {
  name: 'App',
  created () {
    //在页面加载时读取sessionStorage里的状态信息
    if (sessionStorage.getItem('store') ) {
        this.$store.replaceState(Object.assign({}, this.$store.state,JSON.parse(sessionStorage.getItem('store'))))
    } 

    //在页面刷新时将vuex里的信息保存到sessionStorage里
    window.addEventListener('beforeunload', () => {
        sessionStorage.setItem('store', JSON.stringify(this.$store.state))
    })
  }
}

beforeunload 事件在 ios 上不兼容,刷新页面时无法执行

解决方案: 使用 pagehide 代替 beforeunload

更新时间: