javascript - 双嵌套动态模块注册-vuex

标签 javascript vue.js 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>

关于javascript - 双嵌套动态模块注册-vuex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48390948/

相关文章:

javascript - onclick事件没有被触发

javascript - 在 HTML/CSS 中创建 float 标签

javascript - Javascript构造函数属性有什么意义?

javascript - Jest Test中触发事件不调用Method

vue.js - vue js v-for 输入类型和 v-model

vue.js - vuex:未知的 getter:文章

javascript - 不为 ctrl-C (Mac) 调用 NodeJS 应用程序中的 SIGINT 处理程序

vue.js - Promise 被拒绝并且无法在 VUE 和 Directus 中获取 Collections 或 getItems

vue.js - 从 Vuex 的另一个 Action 中调用一个 Action 是不好的做法吗?

javascript - Nuxt,将 Vuex 存储拆分为单独的文件会出现错误 : unknown mutation type: login