vue3setup写法中父组件向子组件传了一个数组,子组件watch监听不到父组件传的值
时间: 2023-06-23 12:57:35 浏览: 75
vue父组件给子组件传值
可能是因为你传递的数组是一个对象或者数组,而对象和数组在 JavaScript 中是引用类型,所以在 Vue.js 中,父组件传递给子组件的引用类型的数据,如果不进行特殊处理,子组件中的数据是和父组件中的数据是同一个引用地址,所以子组件中的数据变化也会影响父组件中的数据,这就会导致子组件中的 watch 监听不到父组件传递的数据变化。
解决方法是在子组件中使用 `props` 属性的 `deep` 选项,用来监听对象或数组的变化。
```javascript
props: {
myArray: {
type: Array,
default: () => []
}
},
watch: {
myArray: {
deep: true,
handler(newValue, oldValue) {
// 处理数据变化
}
}
}
```
这样就可以监听到父组件传递的数组的变化了。
阅读全文