Vuex(三)--Vue核心概念Getter

文章目录

1.Vuex(一)–为什么要使用Vuex
2.Vuex(二)–Vue核心概念State
3.Vuex(三)–Vue核心概念Getter
4.Vuex(四)–Vue核心概念Mutation
5.Vuex(五)–Vue核心概念Action
6.Vuex(六)–Vue核心概念Module
在上一篇《Vuex(二)–Vue核心概念State》,我们介绍了State
有时候我们需要从 store 中的 state 中派生出一些状态。
如果有多个组件需要用到此属性,我们要么复制这个函数,或者抽取到一个共享函数然后在多处导入它——无论哪种方式都不是很理想。
Vuex 允许我们在 store 中定义getter(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
比如这里我们在Page4.vue里面需要对商品价格加倍,我们就可以使用Getter

使用Getter

store.js,我们在state下面加入getters里面有一个商品价格加倍的方法。

getters: {
        // 商品价格加倍
        goodsPriceDoubble: state => {
            var goodsPriceDoubble = state.goodsList.map(function(item){
                return {
                    price: item.price * 2,
                    name: item.name
                }
            })
            return goodsPriceDoubble;
        }
    }

Page4.vue里面修改成如下:

<li v-for="item in goodsPriceDoubble">
    <p class="name">商品:{{item.name}}</p>
    <p class="price">价格:¥{{item.price}}</p>
</li>

computed中加入如下方法:

goodsPriceDoubble() {
    return this.$store.getters.goodsPriceDoubble;
}

显示效果就是page4的商品价格加倍了。
这里写图片描述

代码下载

下载请点击我!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值