Vue全家桶学习—Vuex核心的5个概念之Getters

一、Vuex的5个核心概念

(1)、State
(2)、Getters
(3)、Mutations
(4)、Actions
(5)、Modules
前面一篇博客大致了解了以下state和mutations两个属性。
今天主要学习一下Getters属性。

二、Getters

不禁会让人想到java中的getter。事实上,二者还是有区别的,官方对于getters的解释是:Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
那么getters的功能就是将state中的值处理以后再返回结果。

获取store中的state的值,例如:

this.$store.state.goodList

但是现在我现在想要获取购物车中价格小于200元的商品数量,那么没有使用getters前,应该是:

this.$store.state.goodList.filter(good => good.price<200).length

但是我如果在很多地方都需要用到这个功能,那么就需要不断复制这段函数,那么我们就可以将个函数放入getters中,当需要获取购物车中价格小于200元的商品数量 时,直接调用getters中的方法即可,这样同样有利于日后代码的维护和修改。在store文件夹的index.js下添加getters属性,前面创建项目时,默认只创建了state、mutations、actions和modules属性,并没有自带getters属性。给getters添加lowPrice的属性:
在这里插入图片描述
当我们需要获取购物车中价格小于200元的商品数量时,只需要:
this.$store.getters.lowPrice

Getter 也可以接受其他 getter 作为第二个参数,也就是说可以在一个getter中调用其他getter,例如,现在我想要找到购物车中商品价格大于等于200并且小于400的商品个数:小于400元的商品减去小于200元的商品数量
在这里插入图片描述
结果:
在这里插入图片描述
控制台输出:
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vuex getters是一种在Vue.js应用程序中访问和计算store中状态的方法。它们允许您从store中获取数据,并将其转换为您需要的格式。 在Vuex中,您可以定义getters来获取store中的数据,并在组件中使用它们。getters类似于Vue组件中的计算属性,它们可以根据store中的状态进行计算和转换。 要定义一个getter,请在Vuex store的getters对象中添加一个函数。这个函数将接收state作为第一个参数,并且您可以使用它来访问store中的状态。以下是一个示例: ```javascript // 在Vuex store中定义一个getter const store = new Vuex.Store({ state: { todos: [ { id: 1, title: '任务1', completed: false }, { id: 2, title: '任务2', completed: true }, { id: 3, title: '任务3', completed: false } ] }, getters: { completedTodos: state => { return state.todos.filter(todo => todo.completed) } } }) // 在组件中使用getter export default { computed: { completedTodos() { return this.$store.getters.completedTodos } } } ``` 在上面的示例中,我们定义了一个名为`completedTodos`的getter。它使用`filter`方法从store中的todos数组中过滤出已完成的任务。然后,我们可以在组件中使用`this.$store.getters.completedTodos`来访问这个getter。 通过使用getters,您可以对store中的数据进行任何需要的转换和计算,并将其用于组件中。这样,您可以保持组件的简洁性,并确保状态的一致性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小绵杨Yancy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值