ฉันพยายามที่จะเข้าใจวิธีการดูความแปรปรวนของเสา ฉันมีองค์ประกอบหลัก (ไฟล์. vue) ที่รับข้อมูลจากการโทร ajax วางข้อมูลไว้ในวัตถุและใช้เพื่อแสดงองค์ประกอบย่อยของเด็กผ่านทางคำสั่ง v-for ภายใต้การทำให้ง่ายขึ้นของฉัน:
<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){
ตามที่ @Ron แนะนำ