Düzgün bazı prop varyasyon izlemek için nasıl anlamaya çalışıyorum. Bir ajax çağrısından veri almak, bir nesnenin içine veri koymak ve benim uygulama basitleştirilmesi altında bir v-yönergesi ile bazı alt bileşen oluşturmak için kullanmak bir üst bileşen (.vue dosyaları) var:
<template>
<div>
<player v-for="(item, key, index) in players"
:item="item"
:index="index"
:key="key"">
</player>
</div>
</template>
... sonra iç <script>etiket:
data(){
return {
players: {}
},
created(){
let self = this;
this.$http.get('../serv/config/player.php').then((response) => {
let pls = response.body;
for (let p in pls) {
self.$set(self.players, p, pls[p]);
}
});
}
öğe nesneleri şu şekildedir:
item:{
prop: value,
someOtherProp: {
nestedProp: nestedValue,
myArray: [{type: "a", num: 1},{type: "b" num: 6} ...]
},
}
Şimdi, çocuğumun "player" bileşeni içinde herhangi bir Item'in özellik varyasyonunu izlemeye çalışıyorum ve kullanıyorum:
...
watch:{
'item.someOtherProp'(newVal){
//to work with changes in "myArray"
},
'item.prop'(newVal){
//to work with changes in prop
}
}
Çalışıyor ama benim için biraz zor görünüyor ve bunu yapmanın doğru yolu olup olmadığını merak ediyordum. Amacım bazı eylemi her zaman yapmaktır propdeğişiklik veya myArrayyeni unsurlar veya mevcut olanları içindeki bazı varyasyon alır. Herhangi bir öneri takdir edilecektir.
keysBir nesnenin tümünde bir değişiklik izlemek mümkün müdür ? Örnek:"item.*": function(val){...}
"item.someOtherProp": function (newVal, oldVal){@Ron'un önerdiği gibi kullanın .