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

下面就为您详细讲解如何使用 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的钩子函数(路由导航守卫、keep-alive、生命周期钩子)

    Vue的钩子函数 Vue的钩子函数是Vue.js提供的一种功能,我们可以使用这些函数在组件的生命周期中绑定自定义行为。Vue的钩子函数可以分为两类,一个是系统内置的,一个是我们可以在组件中自定义的。其中,系统内置的钩子函数被称为生命周期钩子,用来在组件的不同生命周期中,执行不同的操作。 路由导航守卫 Vue的路由导航守卫,是Vue中的一种钩子函数,用于控制路…

    Vue 2023年5月27日
    00
  • vue-route路由管理的安装与配置方法

    下面是详细的Vue Router路由管理的安装与配置方法攻略: 安装 首先,在项目根目录下,运行以下命令安装vue-router依赖: npm install vue-router –save 配置 在项目中使用Vue Router需要在main.js中引入Vue Router并配置路由: // 引入Vue Router import VueRouter …

    Vue 2023年5月28日
    00
  • 浅谈vue3中effect与computed的亲密关系

    浅谈vue3中effect与computed的亲密关系 什么是effect和computed 在vue3中,effect和computed是两种常用的API。effect是用来观察响应式状态的变化,而computed是用来派生一个新的响应式状态,根据已有的响应式状态计算出新的响应式状态的值。 effect 下面是一个简单的示例,演示了如何通过effect去观…

    Vue 2023年5月28日
    00
  • vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解

    下面详细讲解“vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解”的完整攻略。 1. vue-cli 3.0 与 3.0 以下版本的区别 1.1 脚手架版本 vue-cli 3.0 与 3.0 以下版本最明显的区别是使用的脚手架是不同的。vue-cli 3.0 使用的是 @vue/cli,而 3.0 以下版本使用的是 vue-cli。因此,安…

    Vue 2023年5月28日
    00
  • vue数据响应式原理知识点总结

    Vue数据响应式原理 什么是Vue数据响应式 Vue的数据响应式是Vue框架的核心功能之一,它也是Vue区别于其它框架的重要特点之一。所谓的数据响应式,指的是当Vue中的数据发生变化时,Vue会自动检测到数据的变化,并立即更新相关的视图,从而实现视图和数据的双向绑定。 例如,当我们在Vue中某个数据发生变化时,相关的HTML界面会自动更新数据,而无需手动更新…

    Vue 2023年5月29日
    00
  • vue打印插件vue-print-nb的实现代码

    下面详细讲解一下vue打印插件vue-print-nb的实现代码的攻略。 1. 确认安装 首先需要确认已经在vue项目中安装了vue-print-nb插件,确认方法可通过以下命令进行: npm list vue-print-nb 如果已经正确安装,则可查看到vue-print-nb以及其依赖项在项目文件夹中的位置。 2. 使用vue-print-nb插件 接…

    Vue 2023年5月27日
    00
  • 使用Vite2+Vue3渲染Markdown文档的方法实践

    使用Vite2+Vue3渲染Markdown文档的方法实践,可以按照以下步骤进行: 准备工作 安装Node.js,下载地址:https://nodejs.org/en/download/。 在终端中执行以下命令安装Vite:npm install -g vite。 创建一个新的Vue3项目:npm init vite@latest project-name …

    Vue 2023年5月28日
    00
  • vue的el-select绑定的值无法选中el-option问题及解决

    当使用Vue的el-select组件时,可能会遇到无法选中el-option的问题。这个问题常见于el-option基于v-for动态渲染的情况下。 出现这个问题的原因,是因为el-select组件中v-model绑定的值和el-option组件中v-bind:value绑定的值类型不一致导致的。解决这个问题有以下两种方法: 方法一:更换v-model绑定的…

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