1、什么是计算属性
- 以函数的形式写在 Vue 实例中的computed 选项内,最终返回计算后的结果。
- 本质就是替代表达式完成复杂逻辑运算。
2、 计算属性的用法
- 在一个计算属性里可以完成各种复杂的逻辑,包括运算、函数调用等,只要最终返回一个结果就可以。
- 还可以依赖多个 Vue 实例的数据,只要其中任一数据变化,计算属性就会重新执行,视图也会更新。
属于多对一模式:购物车计算价格实例 案例源码
3、何时使用模板内表达式,何时使用计算属性?
- 模板内表达式:只支持单行表达式,适用于简单计算
- 计算属性:适用于复杂逻辑计算
4、计算缓存computed与method的区别
计算缓存:是基于它们的依赖进行缓存的,只有在依赖发生改变的时候,它们才会重新计算。 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 取决于你是否需要缓存,当遍历大数组和做大量计算时,应当使用 计算属性