前言
当我们需要对某些数据的变化进行监视并执行某些操作时,可以使用 watch 侦听器
基本用法
方法格式(函数格式)
const vm = new Vue({
el: '#app',
data: {
username: '',
},
watch: {
username(newValue, oldValue) {
console.log(newValue, oldValue)
}
}
})
对象格式
const vm = new Vue({
el: '#app',
data: {
username: '',
},
watch: {
username: {
handler(newValue, oldValue) {
console.log(newValue, oldValue)
},
}
}
})
immediate选项-立即触发
默认情况下,刚进入页面时是不会触发侦听器的,只有监听的数据发生变化才会触发,这里需要使用侦听器的 对象格式 并将 immediate 选项设为true
const vm = new Vue({
el: '#app',
data: {
username: '',
},
watch: {
username: {
handler(newValue, oldValue) {
console.log(newValue, oldValue)
},
immediate: true
}
}
})
deep选项-深度监听
默认情况下,监听的数据是个对象,对象的属性发生变化不会触发侦听器,这里需要使用侦听器的 对象格式 并将 deep 选项设为true
const vm = new Vue({
el: '#app',
data: {
info: {
username: ''
}
},
watch: {
info: {
handler(newValue, oldValue) {
console.log(newValue, oldValue)
},
deep: true
}
}
})
监听对象属性
如果只需要监听对象的单个属性,可以使用 ‘对象.属性’ 的方式来定义侦听器
const vm = new Vue({
el: '#app',
data: {
info: {
username: ''
}
},
watch: {
'info.username'(newValue, oldValue) {
console.log(newValue, oldValue)
}
}
})
|