[Vue2]侦听器watch(监视器)
watch的作用是帮我们监视数据变化,在监视的数据变化时执行一些逻辑操作或异步操作。
基本使用
侦听器watch是和data同级的模块,所有的侦听器都写在这里面。侦听方法名与侦听的变量的名相同。
侦听某个变量:
const app = new Vue({
el: '#app',
data: {
name:"蔡徐坤"
},
watch:{
name(newValue,oldValue){
//相关操作
}
}
})
如果你要侦听的是某个对象的子属性,那么你的方法名则为 对象.属性名,并加一个单引号
const app = new Vue({
el: '#app',
data: {
obj{
name:"蔡徐坤"
}
},
watch:{
'obj.name' (newValue,oldValue){
//相关操作
}
}
})
如果你要侦听一个对象的所有属性,那么我们的侦听器不再写成一个方法,,而是一个对象,并且可以使用配置项
const app = new Vue({
el: '#app',
data: {
obj{
name:"蔡徐坤",
age:1
}
},
watch:{
obj:{
deep:true,
immediateProp:true,
handler(newValue,oldValue){
//相关操作
newValue.name
...
}
}
}
})
配置项
deep:true : 用于标明对复杂类型深度监视
immediateProp:true : 在页面加载时就执行一次相关操作