Vuex 第4节 getters计算过滤操作

Posted elva3zora

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vuex 第4节 getters计算过滤操作相关的知识,希望对你有一定的参考价值。

Vuex 第4节 getters计算过滤操作


第4节 getters计算过滤操作

getters从表面是获得的意思,可以把他看作在获取数据之前进行的一种再编辑,相当于对数据的一个过滤和加工。你可以把它看作store.js的计算属性。

getters基本用法

比如我们现在要对store.js文件中的count进行一个计算属性的操作,就是在它输出前,给它加上100。

我们首先要在store.js里用const声明我们的getters属性。

const getters={
    count:function(state){
        return state.count+=100;
    }
}

写好了getters之后,我们还需要在Vuex.Store()里引入,由于之前我们已经引入了statemutations,所以引入里有三个引入属性。代码如下:

export default new Vuex.Store({
    state,mutations,getters
})

在```store.js``里的配置算是完成了,我们需要到模板页对computed进行配置。在vue 的构造器里边只能有一个computed属性,如果你写多个,只有最后一个computed属性可用,所以要对上节课写的computed属性进行一个改造。改造时我们使用ES6中的扩展运算符”…”。

computed:{
	...mapState([‘count‘]),
    count(){
	    return this.$store.getters.count;
    }    
},

需要注意的是,你写了这个配置后,在每次count 的值发生变化的时候,都会进行加100的操作。
你看,我们一开始打开页面就从以前的1变成了101:

技术图片

用mapGetters简化模板写法

我们都知道state和mutations都有map的引用方法把我们模板中的编码进行简化,我们的getters也是有的,我们来看一下代码。

首先用import引入我们的mapGetters

import { mapState,mapMutations,mapGetters } from ‘vuex‘;

在computed属性中加入mapGetters

    computed:{
        ...mapState([‘count‘]),
        // count(){
        //     return this.$store.getters.count;
        // }    
        ...mapGetters([‘count‘])
    },

这样就ok了

以上是关于Vuex 第4节 getters计算过滤操作的主要内容,如果未能解决你的问题,请参考以下文章

Vuex之理解Getters的用法

Vue & Vuex getter 数组过滤器仅导致在线错误

vuex项目框架

Vuex - Getter

VueX Getter 从数组中过滤唯一 id

使用 Vuex getter 进行 Vuetify Select