当前位置:首页 >> 网络编程

对vuex中getters计算过滤操作详解

getter这个概念其实我们写的时候感觉好像和Mutations修改状态一样,实际上它们是有区别的:

getters比较死板,如果你的百度钱包只有在金额为100才能提现,那么你在写提现页面,它是早已固定好的,而Mutation不一样,当你点击百度钱包提现,你哪怕是一元,它只要你点击了便可以提现,而且getters它是不需要什么点击,它就存在,只要你写了,这是什么意思,就是说假设你百度钱包为0,你存在了getter它就有100元,而你如果写许多百度经验,百度再次发红包0.5元时它就是100+0.5+100

下面我具体介绍它的用法

第一步 在store.js里用const声明我们的getters属性

代码如下:

const getters={

num:function(state){

return state.num+=100;

}

}

注:如果读者不知道store.js就是我们写vuex共用的js

第二步 在Vuex.Store()里引入getter

代码如下:

export default new Vuex.Store({

state,

mutations,

getters,/*只关注此栏*/

actions

})

第三步 在你自己创建的组件例如a.vue中computed里面进行配置

<script>

  import store from '@/store'

  import {mapState,mapMutations} from 'vuex'

  export default{

    data(){

      return{

      

      }

    },

  

  computed:{

   

   /*只关注此栏这里面采用es6的拓展运算符*/

   ...mapState(["num"]),

   num(){

   return this.$store.getters.num;

   }

   

   },

    

    

    store

    

  }

    

</script>

注:如果你不了解es6的运算符也没关系,你只要知道在里面无论你写多少state变量都没关系即可,包括getter的方法等等,再次要注意return一定要写否则报错。

第四步 在你自己创建的模板中引入测试代码

代码如下:

<div>

{{num}}

</div>

你看一下num为多少?

注:

store.js补充部分:

import Vue from 'vue'

import Vuex from 'vuex'

Vue.use(Vuex)

const state={//状态对象

num:0,

},

const getters={

age:function(state){

return state.num+=100;

},

export default new Vuex.Store({

state,

mutations,

getters,

actions

})

注:如果你看到了100,那就说明你成功,然后你在你自己创建的模板中试一试加一个button点击事件再次观察结果看看

代码补充部分如下:

1)在store.js中添加如下代码

const mutations={//触发状态

jia(state){

state.num+=0.5

},

}

2)在你自己的组件a.vue中添加如下代码

模板部分:

<div>

{{num}}

</div>

<button @click="jia">+</button>

</div>

script部分:

methods:mapMutations([

    

    'jia',

    ]),

观察结果如果为200.5则成功。

以上这篇对vuex中getters计算过滤操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。