vuex中的getters的使用
- 通过this.$store.getters来使用
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const state = {
count: 1
}
const getters={
count(state){
console.log(state.count)
}
}
export default new Vuex.Store({
state,mutations,getters
})
count.vue
<template>
<div>
<h3>{{$store.state.count}}========{{count}}</h3>
<hr/>
<p>
<button @click="$store.commit('add',10)">+</button>
<button @click="reduce(10)">-</button>
</p>
</div>
</template>
<script>
import store from '@/vuex/store'
import {mapState,mapMutations} from 'vuex'
export default {
data(){
return{
msg:"hello vuex"
}
},
methods:{
...mapMutations(['add','reduce'])
},
watch:{
//这里是在监听到count改编后,再调用getters中的方法
count(){
this.$store.getters.count
}
},
computed:mapState(['count']),
store
}
</script>
<style>
</style>
- 通过mapGetters来使用
在这里我妥协了
如果将…mapGettters放在methods中就会一直报错
所以我直接放在computed中了
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const state = {
count: 1
}
const mutations={
add(state,n){
state.count+=n
},
reduce(state,n){
state.count-=n
}
}
const getters={
//这里我加了一个返回值
count(state){
console.log(state.count)
return state.count
}
}
export default new Vuex.Store({
state,mutations,getters
})
count.vue
<template>
<div>
<h3>{{$store.state.count}}========{{count}}</h3>
<hr/>
<p>
<button @click="$store.commit('add',10)">+</button>
<button @click="reduce(10)">-</button>
</p>
</div>
</template>
<script>
import store from '@/vuex/store'
import {mapState,mapMutations,mapGetters} from 'vuex'
export default {
data(){
return{
msg:"hello vuex"
}
},
methods:{
...mapMutations(['add','reduce']),
},
computed:{
...mapState(['count']),
//需要和getters中的方法名称一致
...mapGetters(['count'])
},
store
}
</script>
<style>
</style>
|你知道的越多,不知道的越多。 |如果本文章内容有问题,请直接评论或者私信我。如果觉得写的还不错的话,点个赞也是对我的支持哦。 |未经允许,不得转载!|微信搜【程序员徐小白】,关注即可第一时间阅读最新文章。回复【面试题】有我准备的50道高频校招面试题,以及各种学习资料。

浙公网安备 33010602011771号