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

news/2024/11/5 12:24:11/

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.ppmy.cn/news/31782.html

相关文章

如何使用MyBatis框架实现对数据库的增删查改?

目录&#xff1a;1.创建MyBatis项目以及如何配置2.MyBatis操作数据库的模式3.实现增删查改注意&#xff1a;在我们操作数据库之前&#xff0c;先要保证我们已经在数据库建好了一张表。创建MyBatis项目以及如何配置我们在创建项目的时候&#xff0c;引入MyBatis相关依赖配置数据…

Mysql count(*)的使用原理以及InnoDb的优化策略

Mysql count的原理你真的了解吗&#xff1f;1、数据库引擎的区别2、InnoDB中count的使用3、innodb对select(\*)的优化/为什么select(\*)通过非聚集索引效率要高于聚集索引面试问到说“你觉得count(*) 的效率怎么样&#xff1f;”&#xff0c;一般回复innodb对count(*)进行优化后…

Dopamine-PEG-cRGD,DOPA-PEG-cRGD,多巴胺-聚乙二醇-crgd细胞穿膜肽

名称:多巴胺-聚乙二醇-cRGD穿膜肽,多巴胺-聚乙二醇-crgd细胞穿膜肽英文名称:Dopamine-PEG-cRGD,DOPA-PEG-cRGD规格:50mg,100mg,150mg(根据要求可定制&#xff09;描述&#xff1a;cRGD多肽序列: cyclo(RGDfK)外 观 : 半固体或固体&#xff0c;取决于分子量。溶解性&#xff1a;…

超超超超保姆式详解——字符函数和字符串函数(学不会打我)上

目录 长度不受限制的字符串函数 strlen部分 strlen函数的易错小知识 strlen函数的实现 strcpy部分 strcat部分 自己实现strcat strstr函数部分 简单例子&#xff1a; 分析 strcmp部分 长度受限制的字符串函数 strncpy 简单例子 strncat strncmp 简单例子 &…

Android源码分析 - View的触摸事件分发

0. 相关分享 Android源码分析 - InputManagerService与触摸事件 1. 接收Input系统发送来的事件 时序图源&#xff1a;稀土掘金 在注册Window的时候&#xff0c;来到ViewRootImpl&#xff0c;其中不仅发起窗口注册&#xff0c;还开启了输入事件的监听&#xff1a; //ViewRoo…

Oracle 数据库相关主题:用户、权限、常用管理工具、常用命令

1. Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN 四种用户有什么区别&#xff1f; SYS用户&#xff08;超级管理员&#xff09;&#xff1a;sys用户具有“SYSDBA”或者“SYSOPER”权限。当创建一个数据库时&#xff0c;SYS 用户将被默认创建并授予 DBA 角色&#xff0c;所有数据…

HTML 扫盲

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录前言HTML 结构快速生成代码框架HTML 常见标签注释标签标题标签: h1-h6段落标签&#xff1a;p换行标签&#xff1a;br格式化标签…

基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)

目录 一、什么是Selenium&#xff1f; 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 总结感谢每一个认真阅读我文章的人&#xff01;&#xff01;&#xff01; 重点&#xff1a;配套学习资料和视频教学 一、什么是Selenium&#xff1f; …