【问题标题】:I got same store data from different client reuqest , nuxt / nodejs / vuex / aws我从不同的客户端请求 nuxt/nodejs/vuex/aws 获得了相同的存储数据
【发布时间】:2023-03-16 06:31:01
【问题描述】:

我尝试建立一个 ssr 项目。 所以我在 asyncData 函数中使用 store 如下

async asyncData({ store, params, req }) {
  if(process.server){
    store.dispatch(...)
    store.commit(...)
    return {...}
  }
}

它在客户端开发环境中运行良好,它为每个用户创建带有新 axios 客户端的新商店 请求服务器端渲染。 但是一旦我把它放到实验室,一个建立在 aws 上的容器,它就会连接起来。 请求和会话不同,但它们共享相同的存储和 axios 实例。 这样我的数据就乱了。

库: "nuxt": "^2.12.2", "axios": "^0.19.2",

=========================更新1 ==================== =====

我得到了第一点,一旦我在本地构建并运行,它就会以相同的结果运行。 在脚本之前:

"cross-env NODE_ENV=development backpack"

现在脚本:

"cross-env NODE_ENV=production nuxt build"
"cross-env NODE_ENV=production backpack build"
"cross-env NODE_ENV=production node build/main.js"

【问题讨论】:

  • 你不需要if(process.server),因为asyncData总是在服务器端
  • 它也可以在客户端运行,但这不是导致问题的关键

标签: amazon-web-services vue.js vuex nuxt.js asyncdata


【解决方案1】:

问题是我如何为 store 模块定义的。

    // won't share state
    const state = {}
    export default {
      state: () => { return { ...state } }
    }
    // share state
    const state = {}
    export default {
      state:() => state
    }

【讨论】:

    猜你喜欢
    • 2020-12-06
    • 2015-06-18
    • 2013-07-13
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    相关资源
    最近更新 更多