Eu queria saber como usar o watch para dados aninhados em VueJs corretamente para alteração em algum valor de uma variável. No meu código tem um componente pai que recebem dados de uma função ajax, põe o dado em um objeto e usam esse dado para renderizar componentes filhos através de v-for. Exemplo de implementação:
<template>
<div>
<player v-for="(item, key, index) in players"
:item="item"
:index="index"
:key="key"">
</player>
</div>
</template>
Aí dentro da tag 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]);
}
});
}
O objeto item é algo assim:
item:{
prop: valor,
outraProp: {
propAninhada: valorAninhado,
array: [{type: "a", num: 1},{type: "b" num: 6} ...]
},
}
Funciona, mas parece um pouco complicado para mim e eu queria saber se este é o jeito certo de programar isso. Meu objetivo é realizar alguma ação toda vez que o prop
muda ou array
recebe novos elementos ou alguma variação dentro dos já existentes. Agradeço qualquer sugestão.