vue里面有什么类似react中useEffect的可以监听的功能
时间: 2024-02-11 17:07:55 浏览: 212
在 Vue 中,有一个类似于 React 中 `useEffect` 的功能,那就是 `watch`。`watch` 可以监听 Vue 实例中的数据变化,并在数据变化时执行相应的函数。
`watch` 可以监听单个数据,也可以监听多个数据。当监听到数据变化时,可以执行回调函数或直接触发某个方法。`watch` 也支持深度监听对象或数组的变化。
下面是一个使用 `watch` 监听数据变化的示例代码:
```javascript
watch: {
// 监听单个数据
message: function (newVal, oldVal) {
console.log('message changed from', oldVal, 'to', newVal)
},
// 监听多个数据
'user.name': function (newVal, oldVal) {
console.log('user name changed from', oldVal, 'to', newVal)
},
// 监听对象的变化
user: {
handler: function (newVal, oldVal) {
console.log('user object changed', newVal, oldVal)
},
deep: true,
},
}
```
在上面的代码中,`watch` 监听了 `message` 和 `user` 的变化。当 `message` 发生变化时,会执行回调函数并打印变化前后的值。当 `user` 对象的属性发生变化时,也会执行回调函数并打印变化前后的值。
需要注意的是,`watch` 监听的数据必须是 Vue 实例中已经定义的数据。如果要监听动态新增的数据,可以使用 `vm.$watch` 方法。
阅读全文