Vuex 容许咱们在store中定义“getter”(能够认为是store的计算属性)。就像计算属性同样,getter的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被从新计算。vue
对于getters的理解主要做用是对state属性进行计算,能够理解相似于Vue中computed。接下来让我经过一个例子如何使用这两个功能的。vuex
仍是以咱们上一讲的累加器为例,在getter.js中增长getCount,内容以下:缓存
const getters = {
getNum (state) {
return state.num
},
getCount (state) {
return state.count
}
}
export default getters
复制代码
在组件中如何使用bash
<template>
<div class="getter">
{{ count }}
<button @click="add">ADD State</button>
</div>
</template>
<script>
export default {
data () {
return {}
},
computed: {
count () {
return this.$store.getters.getCount
}
},
methods: {
add () {
this.$store.commit('add')
}
}
}
</script>
复制代码
this.$store.getters.getCount
复制代码
import store from '@/store/store.js'
store.getters.getCount
复制代码
<template>
<div class="getter">
{{ getCount }}
<button @click="add">ADD State</button>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
data () {
return {}
},
computed: {
...mapGetters(['getCount'])
},
methods: {
add () {
this.$store.commit('add')
}
}
}
</script>
复制代码