以下是文档:
mapState
辅助函数当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用
mapState
辅助函数帮助我们生成计算属性,让你少按几次键:
mapGetters
辅助函数
mapGetters
辅助函数仅仅是将 store 中的 getter 映射到局部计算属性:
以下我的想法:
按照文档的说法,我使用mapGetters
也能让我少按几次键,或者如果我直接使用mapState
的话,mapGetters
甚至getters
都没有存在的意义了,因为我能直接获取到state
,只要我不去修改它,我就可以一直使用this.$store.state
,连getter
函数都可以懒得写了,但事实并不是这样,这是我目前的困惑~
getter
可以帮助我们格式化数据,减少模版计算的复杂度。同时,getter
作为函数,可以直接传递和复用。mapGetters
可以帮助我们将 store 里的getter
集成到当前组件,便于使用。如果你只需要原始数据,你当然可以用
mapState
,但这不代表mapGetters
就没有意义了。如果你的项目不大,只用mapState
当然是可能的,但是在大型项目里,多个组件共用一个格式化后的数据是很常见的,此时mapGetters
就很有价值。比如我老婆是南方人,不怎么吃面食,所以对我们饺子、菜蟒、菜盒、肉盒、菜卷、菜角之类的叫法嗤之以鼻。但是对于我们北方人来说,给每种食物以准确的称呼更有助于日常沟通。