nuxt.js数据缓存问题

问题描述

使用Nuxt.js开发服务端渲染项目时,刷新网页会使保存到 vuex store 中的数据丢失。

如果是 token 那么我会保存到 cookie 中,在 nuxtServerInit 时获取 cookie 中的 token,重新设置到 store 中。

但是如果我有其他要缓存的数据,比如:产品分类等,不想设置到 cookie 中,而是想保存到 sessionStorage 中,在页面载入后,从 sessionStorage 中提取数据到 store 中,应该怎么做?(缓存的数据也许会比较多,所以想找个单独配置的地方,而不是每个页面都写一次,应该写到哪里? 或者还是只能用cookie来做,就像token那样?)

阅读 8.3k
2 个回答

在首屏的时候,获取的数据是存在window.__NUXT__中的,然后执行store.replaceState(window.__NUXT__)去初始state,再进行客户端混合,你可以考虑在store.replaceState(window.__NUXT__)执行之前先把sessionStorage中的数据先合并到window.__NUXT__中应该是可以的

在layout里调mutation

const info = sessionStorage.getItem('user')
this.$store.commit('UPDATE_USER', info)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题