为什么vue商店状态定义不同? (Nuxt,Vue)

时间:2020-01-23 01:10:02

标签: javascript vue.js vuex nuxt.js

// nuxt vuex module
export const state = () => ({
  test : '',
});

// state should be a method that returns an object in store/index.js 
export const state = {
  test : '',
};


// pure vue or classic mode
const store = new Vuex.Store({
  state: {
    count: 0
  },
})

在模块模式下使用vuex时,为什么需要在nuxt中将状态返回给函数?

我不知道为什么。

对于突变和动作,如果您立即分配一个对象,分配状态也是正常的吗?

1 个答案:

答案 0 :(得分:0)

很好的问题,我也不确定。我唯一能找到的是this comment。显然是要解决并发问题,这是Vue在浏览器中不会遇到的问题。

例如,关于为存储文件中的状态返回一个函数,实际上是Evan将其实现到Nuxt.js中,以避免两个并发请求之间具有相同的状态

修改

跟在兔子洞后面再多一点,更广泛的情况是需要遵循以下服务器渲染规则:"Avoid Stateful Singletons"

事物的节点端需要一种获取初始状态的新副本的方法,这只能通过函数来​​实现,因为状态对象可能已经被其他请求所突变。