2017-07-03 42 views
2

我已經建立了一個具有多個模塊的相當大的Vuex項目。vuex模塊是否仍然需要命名空間?

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

搶一個getter從search模塊一個getter可以像這樣來解決的例子:

computed: { 
    filters() { 
     return this.$store.state.search.filters; 
    } 
} 

因爲我需要通過引用search屬性來訪問模塊的狀態在我的產業鏈中,我是否還需要命名空間模塊?

的文檔指出以下幾點:

默認情況下,動作,突變和getter內部模塊仍然 全局命名空間下注冊的 - 這允許多個模塊 向相同的突變/動作類型反應。

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

但如果模塊是根據自己的財產在店裏是不是模塊本身,它可以很容易通過的文件的簡單的命名約定來防止之間可能發生的衝突只?

我在這裏錯過了什麼?

回答

5

但是,如果模塊在商店中屬於自己的屬性不是模塊本身之間可能發生的唯一衝突,通過簡單的文件命名約定可以輕鬆防止這種衝突?

不,你誤解了。國家本身有適當的命名空間,但突變,行動和獲得者仍然在全球範圍內收集,因此您可以派遣一個動作和來自不同模塊的多個動作對它作出反應。

這是默認行爲,但好消息是,有一個命名空間突變,操作和getter的選項:「namespaced:true」。

它記錄在這裏:https://vuex.vuejs.org/en/modules.html#

向下滾動到 「命名空間」 一節。

+0

感謝您的解釋,這使得它很清楚。 –