我这样写为什么不对 watch: { request.queueAttribute: function () { this.showQueueData(); } }, queueAttribute是request里的一个属性
时间: 2024-03-08 16:46:53 浏览: 24
在 Vue.js 的 `watch` 选项中,属性名称不能包含点号(`.`)。如果要监听一个嵌套属性的变化,可以使用以下两种方式:
1. 使用对象语法:你可以将 `request` 对象作为监听对象,并在其中添加一个属性监听器来监听 `queueAttribute` 属性的变化。具体来说,你可以这样写:
```javascript
watch: {
'request.queueAttribute': function() {
this.showQueueData();
}
}
```
这里的 `request.queueAttribute` 是一个字符串,它指定了要监听的属性的路径。注意,在属性路径中使用字符串时,需要将整个属性路径放在引号中,并使用点号(`.`)来分隔各个属性。
2. 使用深度监听:你可以将 `request` 对象作为监听对象,并使用 `deep` 选项打开深度监听模式。这样,Vue.js 就会自动递归地监听 `request` 对象及其子对象的变化。具体来说,你可以这样写:
```javascript
watch: {
request: {
deep: true,
handler: function() {
this.showQueueData();
}
}
}
```
在这个例子中,我们将 `request` 对象作为监听对象,并使用 `deep` 选项打开深度监听模式。然后,我们在 `handler` 函数中调用 `showQueueData` 方法,以响应 `request` 对象的变化。
希望这些例子可以帮助你理解如何在 Vue.js 中监听嵌套属性的变化。