问题描述
使用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__
中应该是可以的