Vue2之父子组件传值中使用watch监听props中的对象
warning:
这篇文章距离上次修改已过185天,其中的内容可能已经有所变动。
在Vue 2中,可以使用watch
来监控props
中的对象变化。以下是一个简单的例子:
<template>
<div>
<child :myObject="myObject"></child>
</div>
</template>
<script>
import Child from './Child.vue';
export default {
components: {
Child
},
data() {
return {
myObject: {
key: 'initial value'
}
};
},
watch: {
'myObject': {
handler(newVal, oldVal) {
console.log('myObject changed:', newVal);
},
deep: true
}
}
};
</script>
在父组件中,你定义了一个myObject
对象,并通过props
传递给子组件Child
。在父组件中,你使用watch
来监控myObject
对象的变化。当对象内部属性变化时,handler
函数会被触发。
子组件Child.vue
可能看起来像这样:
<template>
<div>
<button @click="updateObject">Update</button>
</div>
</template>
<script>
export default {
props: ['myObject'],
methods: {
updateObject() {
// 修改传入的对象
this.myObject.key = 'updated value';
}
}
};
</script>
在子组件中,你可以通过一个按钮来修改传入的myObject
对象。当你点击按钮,myObject
对象的key
属性会被更新,并触发父组件中的watch
监控。
评论已关闭