在Vue中,deep
和immediate
是两个与侦听器(watchers)相关的选项修饰符,它们提供了更精细的控制。
一方面,deep
修饰符的主要用途是深度观察对象或数组的变化。默认情况下,Vue的侦听器只监听对象的一级属性。但当你使用deep: true
时,侦听器会深入对象或数组的每一层,对任何嵌套属性的变化做出反应。这对于侦听对象的内部属性变化非常有用。
示例:
watch:{
numbers:{
deep:true,
handler(){
console.log('numbers被修改了')
}
}
}
另一方面,immediate
修饰符允许侦听器在组件创建时立即执行。默认情况下,侦听器只在它所监听的属性发生变化时触发。但如果你添加了immediate: true
,那么侦听器将在组件初始化时立即执行一次,无论所监听的属性是否有变化。
示例:
watch:{
isHot:{
immediate:true,
handler(newVaule,oldValue){
console.log('isHot被修改了',newVaule,oldValue)
}
}
}
这两个修饰符可以同时使用在同一个侦听器上,以便在组件创建时立即执行侦听器,并持续监听对象的任何嵌套属性变化。