沃梦达 / IT编程 / 前端开发 / 正文

vue-vuex-getters的基本使用

store对象中getters就类似于计算属性,若想获取state的变量,直接获取即可,但很多时候获取的state变量需要经过一系列的加工或计算才是我们想要的,因此才有了getters,下面演示个最基本的getters使用:templated...

  store对象中getters就类似于计算属性,若想获取state的变量,直接获取即可,但很多时候获取的state变量需要经过一系列的加工或计算才是我们想要的,因此才有了getters,下面演示个最基本的getters使用:

<template>
  <div>
    <h2>{{$store.getters.increhun}}</h2>
    <button @click="addition">counter+1</button>
  </div>
</template>

  getters: {
    increhun(state){
      return state.counter+100
    }
  }

  若是想在getters中的一个方法调用另一个方法,可用参数2,如下:

  getters: {
    increhun(state){
      return state.counter+100
    },
    incretwohun(state,getters){
      return getters.increhun + 100
    }
  }

  现在有一个新的需求是:调用getters的方法并传入我们的参数,可以用如下的做法:

<template>
  <div>
    <h2>{{$store.getters.getstusbyage(20)}}</h2>
  </div>
</template>
  getters: {
    getstusbyage(state){
      //写法一
      // return function(age){
      //   return state.stus.filter(s => s.age>=age)
      // }
      //写法二
      return age => state.stus.filter(s => s.age>=age)
    }
  }

  这种方法算是投机取巧了,因为$store.getters.getstusbyage得到一个函数,只不过后面(20)相当于给这个函数参入参数并调用

本文标题为:vue-vuex-getters的基本使用