持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情
计算属性
应用场景:一个变量的值,依赖另外一些数据计算而来的结果
优势:计算属性将基于依赖项的值进行缓存,依赖值不变,直接从缓存里取结果 依赖值改变,函数重新执行并重新缓存
不完整写法:当计算属性的值不会被修改时
计算属性名(){
return 返回值
}
完整写法:当计算属性的值被用户修改,重新给计算属性赋值时
计算属性名:{
set(形参接收用户修改的值){
//当用户修改时触发这个方法
},
get( ){
return 值 //单纯使用值,触发get方法 ,并将值返回给计算属性变量
}
}
注意:计算属性也是vue变量,所以不要和data里的变量重名,用法和data相同,访问用this
计算属性名为变量,所以使用时不需要加括号
侦听器
目标:可以监听data/computed属性值的改变
基础数据类型监听:
watch:{
要被侦听的变量名(newVal,oldVal){
//当变量的值被改变时这里被自动触发
newVal//更改后的新的值
oldVal//上一次的旧的值
}
}
引用数据类型监听(对象/数组):侦听复杂类型,或者立即执行侦听函数
watch:{ //固定格式
要被侦听的对象名:{
immediate:true //立即执行handler
deep:true //深度侦听复杂类型内变化
handler(newVal,oldVal){
newVal//更改后的新的对象(对象里的值更改后的新对象)
oldVal//上一次的旧的对象(对象里的值更改前的对象)
}
}
}
//侦听对象的某个属性
watch:{ //固定格式
'要被侦听的对象.属性名':{
immediate:true //立即执行handler
deep:true //深度侦听复杂类型内变化
handler(newVal,oldVal){
newVal//更改后的新的对象(对象里的值更改后的新对象)
oldVal//上一次的旧的对象(对象里的值更改前的对象)
}
}
}
可以侦听对象,也可以侦听变量,不过写法不同