2240766eaa1a730c58431265262c2298.png

1.基本用法

下面代码是watch的一种基本用法:

watch去监听单个值是否发生改变

1ab46da8d8e526769d67f39d2a496975.png

6bbab2c7458ff52bf0dac586703aa19d.png

直接写一个监听处理函数,当每次监听到cityName值发生改变时,执行函数。也可以在所监听的数据后面直接加字符串形式的方法名:

watch: {
firstName: 'nameChange'// 方法名
}
}

2. immediate和handler

使用watch基本用法时有一个特点,就是当值第一次绑定的时候,不会执行监听函数,只有值发生改变才会执行。如果我们需要在最初绑定值的时候也执行函数,则就需要用到immediate属性。

比如当父组件向子组件动态传值时,子组件props首次获取到父组件传来的默认值时,也需要执行函数,此时就需要将immediate设为true。

0c8fc2353bd1a483ea9b672e4b05e1ea.png

监听的数据后面写成对象形式,包含handler方法和immediate,之前我们写的函数其实就是在写这个handler方法。

immediate表示在watch中首次绑定的时候,是否执行handler,值为true则表示在watch中声明的时候,就立即执行handler方法,值为false,则和一般使用watch一样,在数据发生变化的时候才执行handler。

3. deep

当需要监听一个对象的改变时,基本的watch方法无法监听到对象内部属性的改变,只有data中的数据才能够监听到变化,此时就需要deep属性对对象进行深度监听。

3c289328d8d9d917344cbaa90d33d000.png

这样只会给对象的某个特定的属性加监听器。数组(一维、多维)的变化不需要通过深度监听,对象数组中对象的属性变化则需要deep深度监听。

Logo

前往低代码交流专区

更多推荐