双嵌套动态模块注册 - vuex

时间:2018-01-22 22:01:08

标签: javascript vue.js vuex

根据Vuex docs,我们可以用这种方式动态注册嵌套模块:

store.registerModule(['nested', 'myModule'], {
  // ...
})

我们可以使用store.state.nested.myModule

访问此状态

如何动态注册嵌套在第一个模块深处的另一个层的模块。 IE浏览器。如何使模块暴露状态为store.state.nested.furtherNested.myModule。这是可以做到的吗?

1 个答案:

答案 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;
&#13;
&#13;