Vue教程96--Module

151 阅读1分钟

Module

认识Module

  • Module是模块的意思, 为什么在Vuex中我们要使用模块呢?

    • Vue使用单一状态树,那么也意味着很多状态都会交给Vuex来管理

    • 当应用变得非常复杂时,store对象就有可能变得相当臃肿.

    • 为了解决这个问题, Vuex允许我们将store分割成模块(Module) , 而每个模块拥有自己的state、mutations、actions、getters等

Module局部状态

  • 上面的代码中, 我们已经有了整体的组织结构, 下面我们来看看具体的局部模块中的代码如何书写.

    • 我们在moduleA中添加state、mutations、getters
       modules:{
           a:{
               state:{},
               mutations:{},
               actions:{},
               getters:{}
           },
           b:{
               state:{},
               mutations:{},
               actions:{},
               getters:{}
           },
           c:{
               state:{},
               mutations:{},
               actions:{},
               getters:{}
           },
       }
    
    • mutation和getters接收的第一个参数是局部状态对象
  • 注意:

    • 虽然, 我们的doubleCount和increment都是定义在对象内部的

    • 但是在调用的时候, 依然是通过this.$store来直接调用的

Actions的写法

  • actions的写法呢? 接收一个context参数对象

  • 局部状态通过 context.state 暴露出来根节点状态则为 context.rootState

  • 如果getters中也需要使用全局的状态, 可以接受更多的参数