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)相當於給這個函數參入參數並調用