我在这个子组件中有一个数组:
arrayChild:
[
{name: 'name1', text: 'text1', buttons: 'false', active: "true"},
{name: 'name2', text: 'text2', buttons: 'false', active: "false"},
...
]
我想在name
,text
和active
(不是buttons
更改!)
我该怎么做?
我创建了基本功能,可以通过点击按钮发出此信息:
<btn @click="emitParent()">emit my Array</btn>
emitUp() {
this.$emit('offerArray', this.arrayChild)
}
但它仅在按钮点击时发出。我需要在名称,文本和活动内的任何更改时自动发出此信息。我该怎么做?我应该使用某种计算机吗?
答案 0 :(得分:4)
Vue.js提供watchers!所以你可以“观察”一个属性,当你做出改变时,你可以做一些事情。见下文:
export default {
data() {
return {
propertyName: 'valueOfProperty'
}
},
watch: {
propertyName(theNewChangedValue) {
//do stuff here
}
}
}
还要考虑深度观察者,这在处理对象数组时非常有用
propertyName: {
handler: function(newValue) {
//do stuff when array of object changes
},
deep: true
}