watch侦听属性的三个参数
时间: 2024-10-27 15:05:19 浏览: 10
在JavaScript中,`watch`方法是用来监听某个对象属性的变化,它通常用于数据绑定或者响应式编程。`watch`方法有三个基本参数:
1. **expression 或 property**: 需要监听的属性名或者表达式。这可以是一个简单的变量名,也可以是一个点表示法的对象路径。
```javascript
let obj = { name: 'John' };
this.$watch('obj.name', (newVal, oldVal) => {
console.log(`Name changed from ${oldVal} to ${newVal}`);
});
```
2. **callback function**: 当指定的属性值发生变化时,这个函数会被调用。它接收两个参数:
- `newVal`: 属性的新值。
- `oldVal`: 属性之前的旧值。(可选,如果原始值不可跟踪,如基本类型、数组、null,那么将不会提供这个参数)
3. **options** (可选): 可选配置选项,例如:
- `{ deep }`: 如果设置为true,将会递归地监视嵌套的对象属性变化。
- `{ immediate }`: 如果设置为true,首次调用回调函数会立即执行,而不仅仅是当属性第一次发生变化时。
- `{ user_defined }`: 是否允许用户自定义的getter和setter函数,用于更精细的控制。
```javascript
let obj = { name: 'John' };
this.$watch('obj', { deep: true }, (obj, oldObj) => {
// 深度监听整个对象的变化
});
```
阅读全文