>[success] # getters-- 扩展 ~~~ 1.上面的参数使用理解章节简单的示范了getters 2.官方文档中还给了更简单的使用方法,我们可以不使用 'this.$store.getters.存值的名称',这种方式获取值,使用提供的'mapGetters 辅助函数' ~~~ >[info] ## mapState 辅助函数 ~~~ 1.Vuex 给我们提供了辅助函数,使用的时候只需要引入辅助函数即可: import { mapGetters } from 'vuex' 2.上面的引入方式用了es6的结构赋值,相当于下面的写法: import vuex from 'vuex' const mapGetters = vuex.mapGetters ~~~ >[danger] ##### 官方给的几种写法 * Getter 也可以接受其他 getter 作为第二个参数: ~~~ getters: { // ... doneTodosCount: (state, getters) => { return getters.doneTodos.length } } ~~~ * `mapGetters`辅助函数仅仅是将 store 中的 getter 映射到局部计算属性: ~~~ import { mapGetters } from 'vuex' export default { // ... computed: { // 使用对象展开运算符将 getter 混入 computed 对象中 // 这样使用如果没有使用命名空间方式的话,他会自己去找模块中对应的gettters ...mapGetters([ 'doneTodosCount', 'anotherGetter', // ... ]) } } ~~~ * 如果你想将一个 getter 属性另取一个名字,使用对象形式: ~~~ mapGetters({ // 把 `this.doneCount` 映射为 `this.$store.getters.doneTodosCount` doneCount: 'doneTodosCount' }) ~~~ >[danger] ##### 使用mapState 辅助函数 改造参数理解章节案例 ~~~ <template> <div> <p>{{appNameWithVersion}}</p> </div> </template> <script> import { mapGetters } from 'vuex' import state from "../store/state"; export default { name: "store", data(){ return{} }, methods:{}, computed:{ ...mapGetters(['appNameWithVersion']) } } </script> <style scoped> </style> ~~~