Vuex — getters扩展
最后更新于:2022-04-02 08:09:43
>[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 辅助函数 改造参数理解章节案例
~~~
~~~
';
{{appNameWithVersion}}