Nuxt 中的服务器端状态更改在渲染时消失

Dan*_* V. 5 javascript server-side vue.js nuxt.js

我正在努力解决我遇到的这个问题。让我为你分解一下。

  1. 我有一个 Nuxt 项目,它使用模块化商店。
  2. 我有一个仅在服务器端运行的全局中间件(意味着刷新页面时)。
  3. 该中间件用于检查是否有包含用户数据的 cookie,如果有,我将向 Firebase 发出发布请求以评估刷新令牌并获取用户元信息(例如显示名称等)。(我也尝试使用 NuxtServerInit,我遇到了完全相同的问题)
  4. 所有这一切都很完美。它运行得很好,通过记录我所知道的一切,它正在工作并且状态发生了变化。

在 loginUser() 方法中,它设置应用程序的状态。(令牌和显示名称值)。当我通过网络应用程序本身登录时,cookie 和状态也会得到正确设置。令牌和显示名称都存储在那里。

但是,如果我刷新页面,它会通过中间件并设置状态,但在渲染时,它似乎会丢弃我对服务器端存储所做的所有更改,并重置存储以准备在客户端使用。

我这里缺少 nuxt 配置吗?我是否必须设置一个特定的密钥来告诉 nuxt 保留服务器端渲染存储?

有人有发生这种情况的经验吗?如果是这样,请指出我正确的方向。

Jon*_*han 2

如果像我一样,您正在使用组件做一些事情,其中​​状态的道具在服务器上是编程的,但在客户端上设置为组件元素,那么您应该检查它们是否设置为道具或属性在客户端。我认为,当它在服务器上呈现时,属性可以被解释为道具,但是当它们在前端沉淀时,它们变得不可读,因此状态消失了。这会导致页面在瞬间看起来正确渲染,然后在没有正确状态的情况下重新渲染。