当前位置: 首页 > news >正文

vuex getters的作用和使用(求平均年龄),以及辅助函数mapGetters

getters作用:派生状态数据

mapGetters作用:映射getters中的数据

使用:

方法名自定义,系统自动注入参数:state,每一个方法中必须有return,其return的结果被该方法名所接收。

  1. 在state中声明数据list

  state: {list:[{id:1,name:'w1',age:20,score:90},{id:2,name:'w2',age:18,score:70},{id:3,name:'w3',age:25,score:88},{id:4,name:'w4',age:30,score:85}]},
  1. 在辅助mapState中加入list

  computed:{...mapState({//:左侧为自定义属性名  :右侧为映射到state中的属性名students:'list'})},
  1. 在页面中遍历students数组。(需要在public下的index.html引入bootstrap样式)

 <!-- 最新版本的 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
    <table class="table table-bordered table-hover"><thead><tr><th>编号</th><th>姓名</th><th>年龄</th><th>成绩</th></tr></thead><tbody><tr v-for="item in students" :key="item.id"><td>{{ item.id }}</td><td>{{ item.name }}</td><td>{{ item.age }}</td><td>{{ item.score }}</td></tr><tr><td colspan="4">平均年龄:</td></tr></tbody></table>

此时在页面中显示为:

  1. 求平均成绩和总成绩的逻辑思想:

现在数据是在vuex中声明的,所以数据不可修改,且还需其他的值,就得考虑派生了。

在派生中声明一个求平均成绩的avgAge的方法:

  getters: {avgAge(state){console.log(state);return 0}},

vuex中的getters在组件当中用辅助函数mapGetters来取其值。getters会return结果,所以只能应用在计算属性computed当中。

    ...mapGetters({//:左侧为自定义属性名 :右侧映射到getters中的方法名avgAge:'avgAge'})

在页面当中的引用:

            <tr><td colspan="4">平均年龄:{{ avgAge }}</td></tr>

此时页面上会显示:可以看出,在getters中return的值显示到了页面中

且在控制台输出了list

证明,vuex中getters的返回值我们已经成功拿到了。所以只要在avgAge中计算出结果返回就可以了

平均年龄:总年龄/人数。循环遍历出list中的age数据,加起来就是总年龄。

    avgAge(state){let sum=0state.list.forEach(item=>{sum+=item.age})return sum/state.list.length}

页面结果如下:

http://www.lryc.cn/news/38218.html

相关文章:

  • 20230311给Ubuntu18.04下的GTX1080M安装驱动
  • 2023腾讯面试真题:
  • 23种设计模式-建造者模式(Android应用场景介绍)
  • English Learning - L2 语音作业打卡 双元音 [ʊə] [eə] Day17 2023.3.9 周四
  • 【动态规划】多重背包问题,分组背包问题
  • JAVA面向对象特征之——封装
  • 【数据结构】二叉树相关OJ题
  • Windows安装Hadoop
  • ICG-Hydrazide,吲哚菁绿-酰肼,ICG-HZ结构式,溶于二氯甲烷等部分有机溶剂,
  • 【论文阅读】浏览器扩展危害-Helping or Hindering? How Browser Extensions Undermine Security
  • 线性和非线性最小二乘问题的常见解法总结
  • 数据库知识点
  • Maven打包构建Docker镜像并推送到仓库
  • TypeScript 基础学习之泛型和 extends 关键字
  • 《数据分析-JiMuReport04》JiMuReport报表设计入门介绍-页面优化
  • 带头双向循环链表及链表总结
  • (八十)MySQL是如何基于各种规则去优化执行计划的?(中)
  • 第一章:命题与命题公式
  • c/c++开发,无可避免的操作符operator(篇一),操作符重载
  • 【7.MySQL行格式存储】
  • 【Linux】线程实例 | 简单线程池
  • ATAC-seq 数据分析实战
  • 设计模式-第13章(状态模式)
  • ReentrantLock源码分析(一)加锁流程分析
  • 【C++】list的模拟实现
  • Python连接es笔记三之es更新操作
  • 哪个牌子的蓝牙耳机音质好?音质比较好的蓝牙耳机排名
  • Qt实用技巧:Qt中浮点数的相等比较方式(包括单精度和双精度)
  • 【数据结构初阶】双向循环链表
  • 0104BeanDefinition合并和BeanClass加载-Bean生命周期详解-spring