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 prop
değişiklik veya myArray
yeni unsurlar veya mevcut olanları içindeki bazı varyasyon alır. Herhangi bir öneri takdir edilecektir.
keys
Bir 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 .