计算属性主要是用于对各个状态之间进行运算,数据过滤的一种处理
{{ name + version }}
//运算结果直接拼接
{{ getFullAppVersionName() }}
//函数
{{ fullAppVersionName }}
//计算属性
计算属性是具有数据缓存的,当其依赖的状态没有发生变化时,计算属性是不会调用求值的。方法&视图表达式每次都会进行求值,并更新视图
允许我们对任意一个已经注册过的状态,进行监听,如果状态值发生变化,可以进行回调处理
价格: {{ price }}
总价格:{{ totalPrice }}
export default {
data(){
return {
count : 10
}
},
watch : {
//监听count变化
count(){
setTimeout(()=>{
this.count++
},3000)
}
},
computed : {
//新增计算属性
countA(){
setTimeout(()=>{
//这样写是无法实现的
this.countA = this.count++
},3000)
}
}
}
价格:
总价格:{{ totalPrice }}
总价格:{{ cTotalPrice }}
对于多状态变化且同步的运算,使用计算属性
对于单状态,或监听状态变化后有异步操作业务的,使用watch
export default {
data(){
return {
obj : {
name : "李雷",
age : 12
}
}
},
watch : {
//监听obj的name属性
"obj.name" : {
handler(newVal, oldVal){
//newVal:是变化后的值
//oldVal: 是变化前的值
}
},
//直接监听对象
obj : {
handler(newVal,oldVal){
},
deep : true //开启深度监听
}
}
}