nuxt.js数据缓存问题

问题描述

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

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

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

回答:

在首屏的时候,获取的数据是存在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)

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注