vue2.0 computed 计算list循环后累加值的实例

yizhihongxing

下面就为您详细讲解如何使用 Vue2.0 的 computed 计算属性来实现 list 循环后累加值的功能。

1. 简介

在 Vue.js 中,computed 属性是一种计算属性,它能够基于其它属性的值进行计算,并返回一个计算后的值。本文中将会通过 computed 属性来计算 list 循环后累加值的方法。

2. 实现步骤

2.1 数据源

首先,我们需要一个数据列表,假设该列表为一个数组 list,其中每个元素都有一个叫做 value 的属性,我们需要将每个元素的 value 属性相加,得到所有元素 value 的总和。

data: {
  list: [
    { value: 1 },
    { value: 2 },
    { value: 3 },
    { value: 4 }    
  ]
}

2.2 computed 属性计算

我们可以使用 Vue 中的计算属性来计算元素 value 的值。首先,我们使用 map 方法从 list 中提取出每个元素的 value 属性,得到一个新的数组 listValues。然后,我们使用 reduce 方法对 listValues 进行累加,得到所有元素 value 的总和。

computed: {
  totalValue: function() {
    var listValues = this.list.map(function(item) {
      return item.value;
    });
    var sum = listValues.reduce(function(total, amount) {
      return total + amount;
    });
    return sum;    
  }
}

2.3 计算结果渲染

现在,我们已经得到了所有元素 value 的总和,接下来需要将计算结果渲染到页面上。我们可以在 HTML 中使用插值绑定 {{}} 来绑定计算属性。

<div>Total value: {{ totalValue }}</div>

2.4 示例说明

下面,我们通过两条示例来进一步说明如何使用 computed 属性计算 list 循环后累加值。

2.4.1 示例1:计算购物车中所有商品的价格总和

data: {
  cartItems: [
    { product: 'apple', price: 10 },
    { product: 'banana', price: 20 },
    { product: 'orange', price: 30 },
    { product: 'grape', price: 40 }
  ]
},
computed: {
  totalPrice: function() {
    var prices = this.cartItems.map(function(item) {
      return item.price;
    });
    var sum = prices.reduce(function(total, amount) {
      return total + amount;
    });
    return sum;    
  }
}
<div>Total price: {{ totalPrice }}</div>

2.4.2 示例2:计算学生成绩总和

data: {
  scores: [
    { name: 'Tom', score: 90 },
    { name: 'Jerry', score: 80 },
    { name: 'Mike', score: 70 }
  ]
},
computed: {
  totalScore: function() {
    var scores = this.scores.map(function(item) {
      return item.score;
    });
    var sum = scores.reduce(function(total, amount) {
      return total + amount;
    });
    return sum;    
  }
}
<div>Total score: {{ totalScore }}</div>

3. 总结

本文详细介绍了如何使用 Vue2.0 的 computed 属性来计算 list 循环后累加值的方法,并通过两个示例进行了说明。希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue2.0 computed 计算list循环后累加值的实例 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法

    针对“vue跳转同一个组件,参数不同,页面接收值只接收一次”的问题,我们可以采用以下两种解决方案: 方案一:使用watch监听$route变化 这种方式需要在组件的created或mounted生命周期中,监听vue-router的$route对象。如下所示: <template> <div> <p>{{ message …

    Vue 2023年5月27日
    00
  • 从零实现一个vue文件解析器

    下面我将详细讲解从零实现一个Vue文件解析器的完整攻略。Vue文件是一种用于Vue.js框架的组件定义文件,其中包含Vue组件的所有相关信息,例如template、script和style等标签。 Vue文件解析器的实现过程主要包括以下几个步骤: 解析Vue文件内容,提取template、script和style标签的内容; 将提取出来的template、s…

    Vue 2023年5月27日
    00
  • vue给对象添加属性没有响应式的问题及解决

    针对“vue给对象添加属性没有响应式的问题及解决”的问题,我们需要了解Vue的响应式系统以及如何正确地添加响应式属性。 Vue的响应式系统 首先,我们需要了解Vue的响应式系统是基于ES5的Object.defineProperty实现的,它会在监听的属性被修改时触发更新。当我们通过Vue.$set或者直接使用赋值的方式改变组件的data中对象的属性时,我们…

    Vue 2023年5月28日
    00
  • 记一次用ts+vuecli4重构项目的实现

    让我来详细讲解一下“记一次用TypeScript + Vue CLI 4重构项目”的完整攻略。 准备工作 在进行 TypeScript 重构之前,需要先安装必要的工具和依赖库。以下是准备工作的步骤: 安装 Node.js。 安装 Vue CLI 4。 npm install -g @vue/cli 创建一个新的 Vue 项目,并选择 TypeScript 选…

    Vue 2023年5月28日
    00
  • 详解vue-cli 脚手架项目-package.json

    下面是详解vue-cli 脚手架项目-package.json的完整攻略。 什么是vue-cli脚手架项目-package.json 在使用Vue.js构建前端项目时,我们通常使用Vue CLI来快速创建项目的基础结构。Vue CLI通过自动生成基础代码、提供开发服务器、打包和部署等功能,减少了我们在项目搭建和管理过程中的工作量。在Vue CLI生成的项目中…

    Vue 2023年5月28日
    00
  • vue格式化element表格中的时间为指定格式

    当我们使用 Vue 和 Element UI 框架来处理时间数据时,有时候需要将时间数据按照指定的格式进行格式化,这里提供几种解决方案: 1. 使用 Element UI Table 组件中的 scoped slot 在表格中创建一个名为“date”(可以自己命名)的范围插槽,然后将单元格样式修改相应的格式。 <el-table-column labe…

    Vue 2023年5月28日
    00
  • vue2组件进阶与插槽详解(推荐!)

    Vue2组件进阶与插槽详解 本篇攻略主要介绍Vue2组件的一些进阶用法,重点讲解Vue2插槽的使用。 组件进阶 动态和异步组件 在实际应用中,有些组件只有在需要的时候才会被加载。Vue2提供两种方式达到这种效果:动态组件和异步组件。 动态组件 动态组件可以通过<component>标签来实现,需要指定is属性,该属性值对应动态组件加载的名称: &…

    Vue 2023年5月28日
    00
  • 关于vue二进制转图片显示问题 后端返回的是byte[]数组

    下面是关于vue二进制转图片显示问题的完整攻略。 问题描述 在开发过程中,有时后端返回的数据可能是一个byte[]数组,而我们需要将其转换为图片进行展示。但是直接将该数组作为图片src的值加载时,浏览器会提示无法识别的图片格式。那么该如何处理这个问题? 解决方案 方案一 使用base64编码将二进制数据转换为base64字符串再进行展示。 // 将byte[…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部