问题描述
我尝试建立一个ssr项目。 所以我按照如下方式在asyncData函数中使用store
async asyncData({ store,params,req }) {
if(process.server){
store.dispatch(...)
store.commit(...)
return {...}
}
}
它在客户端开发环境中效果很好,它为每个应用创建带有新axios客户端的新商店 请求服务器端渲染。 但是,一旦我将其投入实验室,就会在aws上建立一个容器,它就会被连接起来。 请求和会话不同,但是它们共享相同的存储和axios实例。 这样会使我的数据混乱。
lib: “ 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"
解决方法
问题是我为商店模块定义的方式。
// won't share state
const state = {}
export default {
state: () => { return { ...state } }
}
// share state
const state = {}
export default {
state:() => state
}