vue2.0用 watch 观察 prop 变化 不触发
时间: 2023-09-05 18:03:52 浏览: 175
VUE面试题Vue2(基础代码,响应式,指令)
在Vue2.0中,使用`watch`来观察`prop`的变化时,有几种情况可能会导致不触发`watch`的回调函数。
首先,需要确保正确设置了要观察的`prop`。`props`是父组件传递给子组件的属性,子组件通过`props`选项来接收这些属性。在Vue2.0中,`props`是用于接收数据的,而不是直接在子组件中定义和修改数据。当接收的`prop`在数据发生变化时,`watch`会触发回调函数。如果没有正确设置`props`选项或没有正确传递`prop`给子组件,`watch`就无法感知到`prop`的变化。
其次,需要注意`watch`选项的写法。`watch`选项是一个对象,包含一个或多个属性,每个属性的 key 是要观察的`prop`的名称,value 是回调函数,在`prop`发生变化时调用。在定义`watch`时,需要注意`prop`的命名和大小写是否和实际使用的`prop`一致,如果不一致,`watch`无法监听到`prop`的变化。
最后,还有一种情况是`watch`选项的写法不正确。在Vue中,`watch`选项可以直接定义为一个函数,也可以定义为一个对象,对象中的每个属性都是要观察的`prop`,而值则是一个函数。如果定义为函数,函数的参数是要观察的`prop`的新值和旧值。如果定义为对象,需要确保每个属性都是要观察的`prop`的名称,并且对应的值是一个函数。
综上所述,如果`watch`无法触发,应该检查是否正确设置了`props`选项和传递`prop`给子组件,是否正确定义了`watch`选项的写法,以及是否确保命名和大小写的准确性。
阅读全文