父组件使用prpos动态传参子组件,子组件watch监听不到数据变化,请写出代码举例说明
时间: 2023-08-28 14:40:22 浏览: 107
好的,这里提供一个例子,假设有一个父组件App.vue和一个子组件Child.vue,需要在父组件中动态传递一个属性值给子组件,并且子组件需要监听该属性值的变化:
App.vue:
```vue
<template>
<div>
<Child :propData="data"></Child>
</div>
</template>
<script>
import Child from './Child.vue';
export default {
components: {
Child
},
data() {
return {
data: 0
}
},
mounted() {
setInterval(() => {
this.data++;
}, 1000)
}
}
</script>
```
Child.vue:
```vue
<template>
<div>{{propData}}</div>
</template>
<script>
export default {
props: {
propData: {
type: Number,
default: 0
}
},
watch: {
propData(newVal, oldVal) {
console.log(`newVal: ${newVal}, oldVal: ${oldVal}`);
}
}
}
</script>
```
在这个例子中,父组件App.vue中使用了props动态传递一个data属性给子组件Child.vue,并且在父组件中使用setInterval定时器每秒钟自增data属性的值,子组件需要监听data属性的变化,一旦data属性发生变化,就会执行watch中的处理函数。
希望这个例子能够帮助你理解props和watch的使用。
阅读全文