vue3watch深度
时间: 2023-09-19 12:11:13 浏览: 72
Vue 3中的`watch`函数可以用于监听Vue实例中数据的变化,并在数据变化时执行特定的操作。在Vue 3中,`watch`函数有两种形式:基础形式和高级形式。
基础形式如下:
```javascript
watch(要监听的数据, 监听回调函数, 选项对象)
```
其中,要监听的数据可以是一个响应式数据或一个返回响应式数据的函数。监听回调函数会在被监听的数据发生变化时被调用,可以接收到新值和旧值作为参数。选项对象可以包含一些配置项,例如`immediate`表示是否立即执行回调函数。
高级形式如下:
```javascript
watch(
{
要监听的数据: 监听回调函数,
...
},
选项对象
)
```
在高级形式中,你可以同时监听多个数据,并为每个数据指定相应的回调函数。
在Vue 3中,`watch`函数的默认行为是浅度监听,即只有当被监听的数据的引用发生变化时才会触发回调函数。如果你想进行深度监听,可以通过设置选项对象的`deep`属性为`true`来实现。
例如:
```javascript
import { ref, watch } from 'vue';
const data = ref({ count: 0 });
watch(
data,
(newVal, oldVal) => {
console.log('count 变化了', newVal, oldVal);
},
{ deep: true }
);
```
上述代码中,`data`被监听的是一个对象,通过设置`deep`选项为`true`,当`data`对象内部的属性发生变化时,也会触发回调函数。
希望这个回答对你有所帮助!如果你还有其他问题,请随时提问。
阅读全文