众所周知,watch用来监听属性,它有两个参数,一个为改变后的值,一个为改变前的值
watch:{
firstname:function(newValue,OldValue){
console.log(newValue);
console.log(OldValue);
}
}
但是watch除了可以监听属性外,还可以用于监听路由
watch: {
$route: {
handler(val, oldval) {
console.log(val.path);
},
deep: true,
immediate: true
}
immediate用于首次监听,默认监听只会在属性发生改变时才会触发,当immediate属性为true时,数据第一次渲染也会被触发监听属性。
deep用于深度监听,默认监听指挥监听数据的第一层级数据,当deep为true时,监听器会一层层的往下遍历,给对象的所有属性都加上这个监听器,但是这样性能开销就会非常大了,任何修改obj里面任何一个属性都会触发这个监听器里的 handler(执行的函数)。
data: {
person: {
name: 'dandan',
love: {
eat: fruit
}
}
},
watch: {
person: {
handler(newValue, oldValue) {
console.log('obj.a changed');
},
immediate: true,
deep: true
}
}
handler为要执行的方法