मैं यह समझने की कोशिश कर रहा हूं कि कुछ प्रोपर वेरिएशन को कैसे ठीक से देखा जाए। मेरे पास एक पैरेंट घटक (.vue फाइलें) हैं जो एक अजाक्स कॉल से डेटा प्राप्त करते हैं, एक ऑब्जेक्ट के अंदर डेटा डालते हैं और मेरे कार्यान्वयन के सरलीकरण के नीचे, v-for directive के माध्यम से कुछ चाइल्ड घटक रेंडर करने के लिए इसका उपयोग करते हैं:
<template>
<div>
<player v-for="(item, key, index) in players"
:item="item"
:index="index"
:key="key"">
</player>
</div>
</template>
... तो <script>
टैग के अंदर :
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]);
}
});
}
आइटम ऑब्जेक्ट इस प्रकार हैं:
item:{
prop: value,
someOtherProp: {
nestedProp: nestedValue,
myArray: [{type: "a", num: 1},{type: "b" num: 6} ...]
},
}
अब, मेरे बच्चे "खिलाड़ी" घटक के अंदर मैं किसी भी आइटम की संपत्ति भिन्नता के लिए देखने की कोशिश कर रहा हूं और मैं उपयोग करता हूं:
...
watch:{
'item.someOtherProp'(newVal){
//to work with changes in "myArray"
},
'item.prop'(newVal){
//to work with changes in prop
}
}
यह काम करता है लेकिन यह मुझे थोड़ा मुश्किल लगता है और मैं सोच रहा था कि क्या यह करने का सही तरीका है। मेरा लक्ष्य हर बार prop
बदलावों के दौरान कुछ कार्रवाई करना है या myArray
नए तत्वों या मौजूदा लोगों के अंदर कुछ भिन्नता प्राप्त करना है। सभी सुझावों का स्वागत है।
keys
किसी वस्तु के अंदर बदलाव को देखना संभव है ? उदाहरण:"item.*": function(val){...}
"item.someOtherProp": function (newVal, oldVal){
@ रॉन के रूप में उपयोग का सुझाव दिया।