vuex模块是否还需要命名空间?

Ste*_*n-v 5 vue.js vue-component vuex vuejs2

我已经建立了一个包含多个模块的相当大的Vuex项目.

https://vuex.vuejs.org/en/modules.html

要获取getter的示例,search可以像这样解决模块中的getter :

computed: {
    filters() {
        return this.$store.state.search.filters;
    }
}
Run Code Online (Sandbox Code Playgroud)

因为我需要通过引用search属性链中的属性来访问模块的状态,我还需要命名我的模块吗?

文档说明如下:

默认情况下,模块内的操作,突变和getter仍然在全局命名空间下注册 - 这允许多个模块对相同的突变/操作类型做出反应.

https://vuex.vuejs.org/en/modules.html#namespacing

但是如果模块在商店中属于它自己的属性并不是模块本身之间可能发生的唯一冲突,这可以通过文件的简单命名约定轻易地防止?

我在这里错过了什么?

Lin*_*org 9

但是如果模块在商店中属于它自己的属性并不是模块本身之间可能发生的唯一冲突,这可以通过文件的简单命名约定轻易地防止?

不,你误解了.状态本身是正确的命名空间,但突变,动作和getter仍然在全局级别上收集,因此您可以例如发送一个Action,并且来自不同模块的多个动作对它做出反应.

这是默认行为,但好消息是,命名空间突变,动作和getter有一个选项:"namespaced:true".

它在此处记录:https://vuex.vuejs.org/en/modules.html#

向下滚动到"命名空间"部分.