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

时间:2019-03-27 07:41:17

标签: javascript vue.js server-side nuxt

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

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

在loginUser()方法中,它设置应用程序的状态。 (令牌和显示名称值)。当我通过Web应用程序本身登录时,Cookie设置正确,状态也是如此。令牌存储在那里,显示名称也是如此。

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

我在这里缺少nuxt配置吗?我是否需要设置特定的密钥来告诉nuxt保存服务器端呈现的存储?

有人对此事有任何经验吗?如果是这样,请指出正确的方向。

1 个答案:

答案 0 :(得分:0)

如果像我一样,您正在对组件进行某些操作,其中状态道具在服务器上是程序化的,但在客户端上设置为组件元素,那么您应该检查它们是否设置为道具或作为客户端的属性。我认为,当它在服务器上呈现时,属性可以被解释为道具,但是当它们在前端定居时,它们变得不可读,因此状态消失。这会导致在瞬间看到页面看起来正确呈现的效果,然后在没有正确状态的情况下重新呈现。