上一篇分析了获取
Vuex
中的state
的Api————mapState
,这一篇继续分析获取getters
的Api————mapGetters
,它其实与mapState
类似,下面看一下源码。
mapGetters
mapGetters
的方法相较于mapState
简单一些,因为调用了normalizeMap
方法,所以也可以传入数组或对象,而下面定义的方法内部,最终应用this.$store.getters
来获取最终需要的getter
。
1 | const mapGetters = normalizeNamespace((namespace, getters) => { |
mapGetters在Vue组件中的应用
1 | <template> |
它的使用方式与mapState
类似,这里就不做详细的分析了。
总结
mapGetters
的内部原理其实同样调用了this.$store.getters
来获取最终需要的getter
。平时开发中,还是主要应用mapGetters
来获取状态,因为有些时候,需要合并多个state
才能得到想要的数据,可能暂时用不到,但随着业务的增加,不可避免会用到,所以还是统一使用mapGetters
更加方便。