Vue的computed计算属性你了解吗

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使用<script lang=“ts“ setup>语法糖

    当我们使用Vue3时,可以使用<script lang=”ts” setup>语法糖来更方便地编写组件。下面我会详细讲解如何在Vue3中使用该语法糖。 准备工作 首先,我们需要安装Vue3以及TypeScript。可以使用以下命令来安装: npm install vue@next typescript 同时,我们需要在项目中添加以下编译器选项(t…

    Vue 2023年5月27日
    00
  • Vue3关于响应式数据类型详解(ref、reactive、toRef、及toRefs)

    Vue 3是Vue.js框架的最新版本,Vue 3对Vue.js响应式系统进行了重构,引入了一些新特性。在Vue 3中,我们可以使用以下概念来定义响应式数据类型:ref、reactive、toRef、toRefs。 ref ref是Vue 3中的一个响应式数据类型,它可以将一个基本类型的值(如字符串、数字、布尔值)封装成一个响应式对象,从而使这个基本类型的值…

    Vue 2023年5月28日
    00
  • 解决vue.js not detected的问题

    当使用Vue.js框架开发web应用时,有时会出现Vue.js框架未被检测到的情况。这通常表现为网页空白,或者浏览器控制台输出“[Vue warn] You are using the runtime-only build of Vue where the template compiler is not available.” 这样的警告信息。本文将为大家…

    Vue 2023年5月27日
    00
  • 详解mpvue中小程序自定义导航组件开发指南

    “详解mpvue中小程序自定义导航组件开发指南”的完整攻略包括以下几个步骤: 1. 创建自定义组件 创建自定义导航组件的方法与创建普通自定义组件类似。在components目录下新建 cus-nav 文件夹,并在该文件夹下创建 cus-nav.vue 文件。 <template> <view> <view class=&quot…

    Vue 2023年5月27日
    00
  • vue函数@click.prevent的使用解析

    当我们使用Vue.js开发前端应用时,经常会在模版中使用@click指令来响应用户的点击事件,在一般情况下,点击事件会导致页面的跳转或刷新等行为,但是有时候我们需要控制点击事件的默认行为,这时候就需要使用@click.prevent修饰符。 @click.prevent能够阻止点击事件的默认行为,例如在表单的提交按钮中使用@click.prevent可以阻止…

    Vue 2023年5月28日
    00
  • vue2 d3实现企查查股权穿透图股权结构图效果详解

    标题:Vue2 + D3 实现企查查股权穿透图股权结构图效果详解 在本文中,我们将介绍如何通过 Vue2 和 D3 库实现企查查股权穿透图股权结构图效果。下面将分为以下几个步骤进行讲解: 搭建项目环境 导入 D3 库 通过 D3 解析数据 绘制股权穿透图 美化股权穿透图 搭建项目环境 使用 VueCli 创建一个新项目 安装 ElementUI:npm in…

    Vue 2023年5月28日
    00
  • vue引入css文件导致全局污染的问题

    下面是详细的讲解“Vue引入CSS文件导致全局污染的问题”的攻略。 什么是全局污染 全局污染是指在 JavaScript 中定义了一个全局变量,但是由于变量名与其他已有的全局变量或者框架中的属性名重复,导致变量被覆盖或污染,从而影响了程序的正常运行。在 Vue 中也同样会出现全局污染的问题。 Vue 引入 CSS 文件导致全局污染的问题 在 Vue 的组件化…

    Vue 2023年5月28日
    00
  • webpack4打包vue前端多页面项目

    关于“webpack4打包vue前端多页面项目”的攻略,我会从以下几个方面进行详细讲解: 安装webpack及相关依赖 配置webpack 多页面配置 示例说明 下面我们将一步一步进行讲解。 1. 安装webpack及相关依赖 首先,我们需要全局安装webpack和webpack-cli,这里我使用的是webpack4版本: npm install webp…

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