vue watch 监听 用于检测数据变化
1. 简单用法
data() {
return {
isEdit: false
}
},
watch: {
isEdit(newVal, oldVal) {
console.log(`${newVal},${oldVal}`)
}
},
2. 深度监听 (主要用于 数组 和 对象 类型数据的监听)
data() {
return {
form: {},
}
},
watch: {
form(newVal, oldVal) {
console.log(oldVal)
console.log(newVal)
}
},
methods: {
handleChangeForm() {
this.form = {
id: 'id',
name: 'name',
type: 'type'
}
},
handleChangeFormItem() {
this.form.id = '001'
}
}
watch: {
form: {
handler(newVal, oldVal) {
console.log(oldVal)
console.log(newVal)
},
deep: true
}
}
3. 立即执行 (初始值时立即执行handler函数)
watch: {
form: {
handler(newVal, oldVal) {
console.log(oldVal)
console.log(newVal)
},
deep: true,
immediate: true
}
}
4. 只监听对象种某一个属性的值,使用字符串的形式
watch: {
'form.id': {
handler(newVal, oldVal) {
console.log(oldVal)
console.log(newVal)
},
deep: true,
immediate: true
}
}