Vue的computed计算属性你了解吗

yizhihongxing

Vue的computed计算属性在Vue框架开发中非常常用。它可以根据计算函数里的数据自动计算出结果,并且在数据发生变化时会自动重新计算,然后用于渲染模板。在这篇文章中,我们将深入了解Vue的computed计算属性,掌握计算属性的使用方法和技巧。

什么是Vue的computed计算属性

Vue的computed计算属性是在Vue实例中定义的函数。它返回一个计算结果,并且在使用时像数据值一样调用。computed计算属性的值会自动缓存,只有在依赖的数据发生改变时才会重新计算。

computed计算属性的使用方法

computed计算属性的使用方法和普通属性的使用方法类似,在Vue实例中定义一个computed属性,然后把计算函数赋值给它。计算函数中访问的数据属性可以是Vuex Store中的state,也可以是Vue实例中的data对象。

下面是一个简单的示例:

<template>
  <div>
    <p>总价:{{totalPrice}}</p>
  </div>
</template>

<script>
export default {
  data(){
    return {
      price: 10,
      quantity: 3
    }
  },
  computed:{
    totalPrice(){
      return this.price * this.quantity;
    }
  }
}
</script>

在这个示例中,我们定义了一个计算属性totalPrice,它会根据price和quantity属性的值自动计算,然后用于渲染模板。

computed计算属性的优势和注意事项

computed计算属性相当于是Vue的响应式数据,它会自动根据数据的变化重新计算。计算属性的另一个优势是值的缓存,只有在依赖的数据发生变化时才会重新计算。

但是需要注意的是,computed计算属性必须是纯函数,它依赖的数据必须是响应式的。如果计算属性依赖了非响应式的数据,那么在数据变化时计算属性不会重新计算。同时,computed计算属性也不适用于所有场景,如果计算函数比较复杂,可能会导致性能问题。

示例一:计算圆的面积和周长

下面是一个关于计算圆的面积和周长的示例。在这个示例中,我们定义了一个圆的半径r,然后用computed计算属性计算圆的面积和周长。在计算属性中我们使用了Math.PI,这是一个常数,计算属性只有在r改变时才会重新计算。

<template>
  <div>
    <p>半径:{{r}}</p>
    <p>圆的面积:{{area}}</p>
    <p>圆的周长:{{circumference}}</p>
  </div>
</template>

<script>
  export default {
    data(){
      return {
        r: 6
      }
    },
    computed: {
      area(){
        return Math.PI * this.r * this.r;
      },
      circumference(){
        return 2 * Math.PI * this.r;
      }
    }
  }
</script>

示例二:根据数据筛选商品

下面是一个关于根据数据筛选商品的示例。在这个示例中,我们定义了一个商品列表和一个搜索关键字,然后通过computed计算属性筛选符合关键字要求的商品。

<template>
  <div>
    <input v-model="keyword" placeholder="搜索商品">
    <ul>
      <li v-for="item in filterGoods">{{item.name}} - {{item.price}}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    data(){
      return {
        goods: [
          { name: '商品1', price: 20 },
          { name: '商品2', price: 40 },
          { name: '商品3', price: 60 },
          { name: '商品4', price: 80 },
          { name: '商品5', price: 100 },
        ],
        keyword: '',
      }
    },
    computed: {
      filterGoods(){
        return this.goods.filter(item => item.name.indexOf(this.keyword) !== -1);
      }
    }
  }
</script>

在这个示例中,我们通过computed计算属性filterGoods根据关键字筛选出符合要求的商品,并渲染到页面上。当我们修改关键字时,filterGoods会自动重新计算,展示最新的搜索结果。

以上是关于Vue的computed计算属性的介绍和示例,希望对您有所帮助。

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

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

相关文章

  • vue3.0组合式api的使用小结

    vue3.0组合式api的使用小结 前言 在Vue.js 3.0中,相比于2.x,最大的改变之一就在于引入了Composition API(也称为Function-based API)。相比之前的Options API,在复杂组件中更加便捷高效,使得代码更加容易维护等等。本文将详细介绍如何使用Vue3.0的组合式API。 安装Vue3.0 在安装Vue3.0…

    Vue 2023年5月27日
    00
  • Vue分析同步和异步有什么区别

    Vue分析同步和异步的区别是一个非常重要的概念,在我们设计和开发Vue应用程序的过程中需要非常清楚。本篇攻略将详细讲解Vue中同步和异步的概念,并通过两个示例说明它们之间的区别。 什么是同步和异步? 在JavaScript中,同步和异步是指代码执行的方式。同步代码按顺序执行,也就是说当一个函数被调用时,代码会等待函数内部所有的操作完成后,才会执行下一个代码块…

    Vue 2023年5月27日
    00
  • vscode配置vue下的es6规范自动格式化详解

    下面给您详细讲解“VSCode配置Vue下的ES6规范自动格式化”攻略。 1. 安装必要插件 在使用VSCode编写Vue项目时,需要安装以下插件: Vetur:Vue语法高亮及格式化 Prettier – Code formatter:代码格式化工具 ESLint:代码语法及规范检查插件 这三个插件的作用分别是:Vue语法高亮及格式化、自动代码格式化、代码…

    Vue 2023年5月28日
    00
  • vue如何基于el-table实现多页多选及翻页回显过程

    实现多页多选及翻页回显的关键在于要在不同页之间共享数据。Vue.js提供了一些辅助方法来进行数据处理和页面渲染。我们可以使用Vue.js的计算属性和方法来实现该功能。 步骤一:设置选中项和分页 首先,我们需要在Vue实例中通过数据来记录选中的项和当前页数,具体代码如下: <template> <el-table :data="ta…

    Vue 2023年5月27日
    00
  • Vue项目中最新用到的一些实用小技巧

    接下来我将向你介绍Vue项目中最新用到的一些实用小技巧。 1. 使用.sync修饰符简化父子组件通信 在Vue中,组件之间的通信非常重要。在父子组件之间通信时,父组件传递数据给子组件是很常见的一种情况。我们通常会使用props来传递数据,并且在子组件中通过$emit来触发父组件中的方法来达到通信的目的。但是,这种方法不太方便,因为在父组件中需要手动监听$em…

    Vue 2023年5月28日
    00
  • Vue编译优化实现流程详解

    为了让读者更好地理解“Vue编译优化实现流程”,本篇攻略将会分为以下几个部分进行详细讲解: 什么是Vue编译优化 Vue编译优化实现流程详解 parse函数解析模板 optimize函数优化模板 generate函数生成渲染函数 示例说明 静态节点优化示例 静态属性提升示例 什么是Vue编译优化 Vue编译优化可以让我们在运行时生成更小、更快的Vue渲染函数…

    Vue 2023年5月27日
    00
  • 详细聊聊Vue中的MVVM模式原理

    详细聊聊Vue中的MVVM模式原理 MVVM模式概述 MVVM模式是一种软件架构模式,它通过将应用程序分为三个部分来实现软件开发的分层和解耦,包括视图(View)、视图模型(ViewModel)和模型(Model)。其中,视图模型是视图和模型之间的中介层,用于将视图与模型之间的交互隔离开来,从而简化了视图和模型之间的耦合性。 在Vue中,MVVM模式的实现主…

    Vue 2023年5月27日
    00
  • Vue.js中的绑定样式实现

    Vue.js是一个流行的JavaScript框架,其中动态绑定样式是一个常见的需求。本文将为您介绍Vue.js中如何使用样式绑定。 1. 绑定内联样式 Vue.js中提供了非常简单的方法来绑定内联样式。只需要在元素上使用:style关键字,然后将需要绑定的样式以JavaScript对象的形式传递即可。 示例代码如下: <div :style=&quot…

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