详解Vue computed计算属性是什么

yizhihongxing

下面我来详细讲解“详解Vue computed计算属性是什么”的完整攻略。

什么是computed计算属性?

在Vue.js中,computed是一个计算属性,即Vue自带的一种通用的计算方式。它是在模板中进行数据展示和操作的时候,可以使用的一种虚拟数据属性,也可用来监听数据的变化。

计算属性实际上就是对已经存在的数据进行处理,通过已有的数据给出新的计算结果。和methods不同的是,computed会缓存计算结果,只有在依赖数据发生变化时才会重新计算。

和computed配合使用的还有一个watch可以监听某些变化并执行一些操作,通常情况下可以使用computed来做的事情都可以用watch来做,但是两者的适用场景还是有很大的差别。

computed计算属性和 methods方法的区别

  • 计算属性是根据其他数据的值计算出新的数据的,而methods是直接处理逻辑的方法。

  • 计算属性的值是基于它所依赖的数据(响应式数据)进行计算的,而methods的值每次都会重新计算一次。

  • 计算属性可以像普通属性一样使用,直接在Vue实例中调用,不需要添加括号,而methods则需要使用括号。

computed计算属性示例

下面通过两个示例来说明computed计算属性的使用

示例1:计算购物车中商品总价值

在一个购物车中,商品数量和商品单价会随时变化,而购物车中的商品总价值需要重新计算,此时就可以使用computed计算属性来计算商品总价值。

<template>
  <div>
    <div v-for="(item, index) in cart" :key="index">
      <div>{{item.name}}</div>
      <div>单价:{{item.price}}</div>
      <div>数量:
        <input type="number" v-model="item.quantity" min="1">
      </div>
      <div>小计:{{item.total}}</div>
    </div>
    <div>总价:{{total}}</div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        cart: [
          {id: 1, name: '商品1', price: 20, quantity: 1},
          {id: 2, name: '商品2', price: 30, quantity: 2},
          {id: 3, name: '商品3', price: 10, quantity: 3},
          {id: 4, name: '商品4', price: 15, quantity: 2},
        ]
      }
    },
    computed: {
      total() {
        let sum = 0
        for (let i = 0; i < this.cart.length; i++) {
          sum += this.cart[i].price * this.cart[i].quantity
        }
        return sum
      }
    }
  }
</script>

在上面的代码中,total是一个取值为计算属性,它的值取决于cart数组和其中每个对象的属性。

示例2:动态过滤列表

在一个列表中,我们需要根据输入框中的关键字进行搜索并展示符合条件的结果,此时可以使用computed计算属性来动态过滤列表。

<template>
  <div>
    <input type="text" v-model="keyword">
    <ul>
      <li v-for="(item, index) in filterList" :key="index">{{item}}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        list: ['苹果', '香蕉', '西瓜', '梨子', '草莓'],
        keyword: ''
      }
    },
    computed: {
      filterList() {
        let _this = this
        return this.list.filter(function (item) {
          return item.indexOf(_this.keyword) !== -1
        })
      }
    }
  }
</script>

在上面的代码中,filterList是一个取值为计算属性,它会根据keyword的值来进行列表过滤,展示符合条件的结果。

总结

computed计算属性是一个非常有用的Vue自带特性,它的使用可以大大简化Vue实例中代码的编写,并且可以提高程序运行效率,避免重复计算。在实际开发中,要灵活运用computed来提高代码的可维护性和可扩展性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Vue computed计算属性是什么 - Python技术站

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

相关文章

  • Vue组合式API–setup中定义响应式数据的示例详解

    什么是Vue组合式API–setup?Vue 3.0中引入了新的组合式API–setup。setup选项是一个新的组件选项,用来代替Vue 2.x版本中的created和beforeCreate选项。setup选项中可以使用Vue3.0的新特性,如响应式数据、计算属性、watcher等。 Vue组合式API–setup中定义响应式数据的示例 在Vue …

    Vue 2023年5月28日
    00
  • element动态路由面包屑的实现示例

    下面是关于“element动态路由面包屑的实现示例”的详细攻略。 什么是动态路由面包屑? 在前端项目中,路由和面包屑导航都是非常重要的概念。路由决定了页面的展示,而面包屑则可以让用户更好地了解当前页面所在的位置和路径。而基于element组件库,可以实现动态路由面包屑,也就是根据用户的页面访问路径,自动生成面包屑导航,而不需要手动配置。 实现步骤 下面是el…

    Vue 2023年5月28日
    00
  • 解决vue单页面应用进入页面加载所有 js 的问题

    解决 Vue 单页面应用进入页面加载所有 js 的问题需要使用到 webpack 的代码分割功能。 Webpack 提供了代码分割功能,通过将应用中的代码分割成多个块(chunk),可以实现按需加载,减少首次加载时间。 以下是详细攻略: 步骤一:配置 webpack 在 webpack.config.js 中进行配置,启用代码分割功能,并将其设置为按需加载。…

    Vue 2023年5月28日
    00
  • Vue不能观察到数组length的变化

    问题分析: Vue.js作为一款流行的前端框架,在日常使用过程中,我们经常会用到数组这一数据类型。但是,Vue.js不能观察到数组的length属性的变化,这是为什么呢? Vue.js对于数据的观察并非是通过原生JavaScript的Object.defineProperty()方法实现的,而是通过劫持数组的方法实现的。所以,当数组length属性发生变化时…

    Vue 2023年5月29日
    00
  • Vue 自定义指令实现一键 Copy功能

    Vue 自定义指令实现一键 Copy 功能 简介 Vue 自定义指令可以让我们扩展 Vue 模板语法。在这篇文章中,我们会讲解如何使用自定义指令实现一键 Copy 功能。 步骤 创建一个自定义指令 javascript Vue.directive(‘copy’, { // 当被绑定的元素插入到 DOM 中时…… inserted: function (el)…

    Vue 2023年5月27日
    00
  • Vue3计算属性和异步计算属性方式

    Vue3中计算属性和异步计算属性的使用方式与Vue2有所不同。接下来将详细讲解Vue3计算属性和异步计算属性的使用方式,并附上两个示例说明。 Vue3计算属性 Vue3中,计算属性仍然是一个非常重要的概念,主要是为了方便我们处理模板中的复杂计算逻辑。Vue3计算属性的使用方法与Vue2基本相同。 基本使用 在Vue3中,可以通过computed选项来定义计算…

    Vue 2023年5月28日
    00
  • 解析如何自动化生成vue组件文档

    下面是我给出的“解析如何自动化生成vue组件文档”的完整攻略,包含以下四个步骤: 步骤一:安装依赖 首先,我们需要安装一些必要的依赖: vue-docgen-api:生成 vue 组件的元数据 vue-styleguidist:将 vue 组件元数据输出为文档网站 你可以使用以下命令安装依赖: npm install vue-docgen-api vue-s…

    Vue 2023年5月27日
    00
  • vue实现表格增删改查效果的实例代码

    下面是关于“vue实现表格增删改查效果的实例代码”的完整攻略: 步骤一:搭建环境 在开始编写代码前,我们需要先搭建运行 Vue.js 的环境。可以使用 Vue.js 官网提供的脚手架 Vue CLI 来创建一个 Vue.js 项目。具体步骤如下: 安装 Node.js Vue.js 依赖于 Node.js 环境,因此需要先安装 Node.js。在安装 Nod…

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