vue3 子组件watch只监听一遍解决方法
时间: 2024-05-07 11:14:45 浏览: 167
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
在 Vue 3 中,子组件的 `watch` 默认情况下只会监听一次。这是因为在 Vue 3 中,子组件的 `watch` 选项默认是被封装成一个 `watchEffect` 函数的,`watchEffect` 函数会在组件挂载时执行一次,之后只有当依赖项发生变化时才会重新执行。
如果需要让子组件的 `watch` 持续监听某个属性,可以通过将 `watch` 选项设置为一个函数,并在函数中返回一个 `watchEffect` 函数来实现。具体实现方式如下:
```
export default {
props: ['value'],
watch: function() {
return {
value: () => {
// 这里写需要执行的代码
}
}
}
}
```
这样就能够实现子组件持续监听 `value` 属性的变化了。
阅读全文