根据Vuex docs,我们可以用这种方式动态注册嵌套模块:
store.registerModule(['nested', 'myModule'], {
// ...
})
我们可以使用store.state.nested.myModule
如何动态注册嵌套在第一个模块深处的另一个层的模块。 IE浏览器。如何使模块暴露状态为store.state.nested.furtherNested.myModule
。这是可以做到的吗?
答案 0 :(得分:1)
首先需要注册furtherNested
模块:
store.registerModule(['nested', 'furtherNested'], {
// ...
})
然后在myModule
中注册furtherNested
模块,方法是指定数组中的路径,如下所示:
store.registerModule(['nested', 'furtherNested', 'myModule'], {
// ...
})
这是一个简单的例子:
let store = new Vuex.Store({
modules: {
nested: {}
}
});
store.registerModule(['nested', 'furtherNested'], {})
store.registerModule(['nested', 'furtherNested', 'myModule'], {
state: { foo: 'bar' }
})
console.log(store.state.nested.furtherNested.myModule);

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vuex/3.0.1/vuex.min.js"></script>
&#13;