《vue -计算属性》

126 阅读2分钟

1、什么是计算属性

  • 以函数的形式写在 Vue 实例中的computed 选项内,最终返回计算后的结果。
  • 本质就是替代表达式完成复杂逻辑运算。

2、 计算属性的用法

  • 在一个计算属性里可以完成各种复杂的逻辑,包括运算、函数调用等,只要最终返回一个结果就可以。
  • 还可以依赖多个 Vue 实例的数据,只要其中任一数据变化,计算属性就会重新执行,视图也会更新。

属于多对一模式:购物车计算价格实例 案例源码

3、何时使用模板内表达式,何时使用计算属性?

  • 模板内表达式:只支持单行表达式,适用于简单计算
  • 计算属性:适用于复杂逻辑计算

4、计算缓存computedmethod的区别

计算缓存:是基于它们的依赖进行缓存的,只有在依赖发生改变的时候,它们才会重新计算。 method方法:绑定数据只要被调用,方法将总会再次执行函数。

相同点:起到的作用都是一样的,computed和methods在输出的结果上是一致

不同点:

  • computed计算属性中定义的是属性而不是函数,所以使用时直接用{{xxx}},而不要使用{{xxx()}}
  • methods中定义的是函数,因此使用时需要{{xxx()}}

5、为什么使用计算属性computed时不用()

计算属性的实质为属性,其中定义了set()方法和get()方法:

而一般使用中不需要set方法,我们只需要get方法,因此计算属性一般为“只读属性”。

去掉无用的set方法后,computed属性简写为我们常见的方式:

因此,只是形式上看起来像函数,实质上computed计算属性是属性。使用计算属性时,直接使用{{fullName}},不要加()。

 computed:{
      
         fullName:{
        get(){
          return this.firstName +' '+ this.lastName;
        },
        set(newValue){
         console.log("set调用了");
          let names = newValue.split(',');
           this.firstName = names[0];
           this.lastName = names[1];
         }
      }
    }

6、何时使用计算属性

使用计算属性还是 methods 取决于你是否需要缓存,当遍历大数组和做大量计算时,应当使用 计算属性