1、认识modules
Module是模块的意思, 为什么在Vuex中我们要使用模块呢?
Vue使用单一状态树,那么也意味着很多状态都会交给Vuex来管理.
当应用变得非常复杂时,store对象就有可能变得相当臃肿.
为了解决这个问题, Vuex允许我们将store分割成模块(Module), 而每个模块拥有自己的state、mutation、action、getters等
2、module中的state和mutations
$store.state.模块名.模块中的state属性
3、module中的getters
getter可以有三个参数,分别是state,getters,rootstate(拿到根的state参数)
getters: { fullname(state) { return state.name + "Getters"; }, fullname2(state, getters) { return getters.fullname + "2222"; }, fullname3(state, getters, rootstate) { return getters.fullname + "2222" + rootstate.counter; } }
根的getters和模块的getters是不重名的,会优先去根里面找,找不到就去模块里面找
$store.getters.getter的名字
4、module中的Actions
局部状态通过 context.state 暴露出来,根节点状态则为 context.rootState
参考链接:
https://www.bilibili.com/video/BV1H7411j7Mc?from=search&seid=10645859101733219162