在 Vuex 中,为什么模块的状态访问为 'store.state.module' 而不是 'store.module.state'?

In Vuex, why are the module's state accessed as 'store.state.module' instead of 'store.module.state'?

在下面的代码中,为什么 moduleA 的状态是用 store.state.a 而不是 store.a.state 访问的?

由于 store 持有 moduleA,而 moduleA 持有其 state,如果 moduleAstate 对我来说更有意义=] 是通过 store.a.state.

访问的
const moduleA = {
  state: () => ({ ... }),
  ...
}

const moduleB = {
  state: () => ({ ... }),
  ...
}

const store = new Vuex.Store({
  modules: {
    a: moduleA,
    b: moduleB
  }
})

store.state.a // -> `moduleA`'s state
store.state.b // -> `moduleB`'s state

之所以是store.state.a而不是store.a.state是因为Vuex中只有一个状态对象。在引擎盖下,所有模块都组合到一个状态对象中。

Vuex 文档可以为您提供更多信息。