vuex中的getters

vuex中的getters

vuex中的getters与vue中的computed计算属性十分相似,在vuex中的Store仓库里,state就是用来存放数据,而getters类似于computed计算属性,也可以对数据进行处理,getters可以对store中的数据进行相应的处理,在调用getters时就会返回处理后的结果。

1.语法

//语法一
getters:{
		vName:function(state){},   //state传入的是vuex中的state对象
		vName2:function(state,getters){}  //getters传入的是getters对象
}

//语法二
getters:{
		vName(state){},
		vName2(state,getters){}
}

2.示例

2.1 过滤小于5的数
const store = Vuex.Store({
	state:{
		lis:[1,2,3,4,5,6,7,8]
	},
	getters:{
		filtedList: state = >{
			return state.lis.filter(lisitem => lisitem > 5)
		}
	}

});
2.2统计lis2的大于5的个数
const store = Vuex.Store({
	state:{
		lis:[1,2,3,4,5,6,7,8],
		lis2:[3,4,5,6,7,8,9]
	},
	getters:{
		filtedLis: state = >{
			return state.lis.filter(lisitem => lisitem > 5)
		},
		filtedLis2: state = >{
			return state.lis.filter(lisitem => lisitem > 5)
		},
        //通过getters获取getters中的其他数据
		getlisLength:(state,getters) =>{
    		return getters.filtedLis2.length
		}
	}

});
2.3过滤小于自定义的数

这里可能有点难懂,我逐步解析:$store.getters.filtedList返回的是一个函数,而函数接受一个num参数,而这个函数过滤掉了state中的lis中小于num的值。

  • $store.getters.filtedList 代表的是一个函数function(num)
  • $store.getters.filtedList(2) 调用函数function(num)并传入数字2
  • state.lis.filter(item => item >= num) 执行函数并过滤掉lis小于2的数据,并返回数组
<!--某组件用到这个$store.getters-->
<template>
	<div>
        <!--传入2,过滤小于2的数-->
        <h1>{{$store.getters.filtedList(2)}}</h1>
    </div>
</template>


const store = Vuex.Store({
	state:{
		lis:[1,2,3,4,5,6,7,8]
	},
	getters:{
		filtedList(state){
			return function(num){
				return state.lis.filter(item => item >= num)
			}
		}
	}
});
posted @   鸭梨的药丸哥  阅读(16)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示