双嵌套动态模块注册-vuex
Double nested dynamic module registration - vuex
根据Vuex docs我们可以这样动态注册一个嵌套模块:
store.registerModule(['nested', 'myModule'], {
// ...
})
我们可以使用 store.state.nested.myModule
访问此状态
如何动态注册嵌套在第一个模块深处的另一层的模块。 IE。我怎样才能使模块公开状态改为 store.state.nested.furtherNested.myModule
。这是可以做到的吗?
您首先需要注册furtherNested
模块:
store.registerModule(['nested', 'furtherNested'], {
// ...
})
然后通过指定数组中的路径在furtherNested
中注册myModule
模块,如下所示:
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>
根据Vuex docs我们可以这样动态注册一个嵌套模块:
store.registerModule(['nested', 'myModule'], {
// ...
})
我们可以使用 store.state.nested.myModule
如何动态注册嵌套在第一个模块深处的另一层的模块。 IE。我怎样才能使模块公开状态改为 store.state.nested.furtherNested.myModule
。这是可以做到的吗?
您首先需要注册furtherNested
模块:
store.registerModule(['nested', 'furtherNested'], {
// ...
})
然后通过指定数组中的路径在furtherNested
中注册myModule
模块,如下所示:
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>