Vuex的基本使用2(getters的使用)

149 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第七天,点击查看活动详情


前言

在上篇文章中我们讲解了如何利用Vuex的state和mutations以及actions进行集中状态的管理,本文我们将继续进行Vuex的讲解。

基本使用

1.getters的使用

概念

我们知道Vue组件实例对象中有data和computed属性,computed通常依赖于data属性中的值进行计算。而getters也类似于computed,这时state也可类比为data。所以我们便可以得出概念就是当state中的数据需要经过加工后再使用时,可以使用getters加工。

运用

我们继续上次的案例进行练习,brother1组件有一个游戏列表,brother2中有一个人员列表,因为数量一致。我们现在有这样一个需求:将brother2的人员列表与brother1的游戏列表一一对应合成一个字符串,再在中间加一个“玩”字。例如:张三玩英雄联盟。下图是一开始的模板。

image.png

那么,我们首先在Vuex(store文件夹下的index.js)添加一个getters配置项。然后在此配置项下添加一个参数作为组合后的值(就像computed计算属性值一样)再进行操作。

store下的index.js

   const state= {
        gameList: ["英雄联盟", "绝地求生", "永劫无间", "Dread Hunger"],
        peopleList: [
            "张三", "李四", "王五", "陆六"
        ]
    }
    const getters= {
        combineValue(state){
            var a=[]
            state.gameList.forEach((element,index,array) => {
               console.log(state.peopleList[index]+"玩"+element)
               return a.push(state.peopleList[index] + "玩" + element)
           })
           return a;
        }
    }

然后在brother1组件中利用列表展示一下

brother1.vue:

    <h3>这是与brother2组合后的值</h3>
    <ul>
      <li v-for="(item, index) in $store.getters.combineValue" :key="index">{{ item }}</li>
    </ul>

效果

image.png

总结

以上就是对于Vuex中的getters配置项的用法,希望能够通过这个小案例让大家加深对于其的理解,我们下期再见!