Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como a computed propety sabe que deve ser disparada?

Bom dia.

Consegui entender a questão da filtragem, de utilizar filtro para realização da* expressão regular* e assim retornar as fotos com base no texto digitado.

A questão é: quem determinou que a cada inserção no input, a computed property fotosComFiltro() deveria ser chamada? Onde está o vínculo entre o que é inserido no input e a execução da computed property?

Essa é a dúvida. Grato desde já.

3 respostas
solução!

Olá Thiago, tudo bem?

Na aula anterior o professor explica como ele fez para que seja capturado e armazenado na variavél filtro o que o usuário digitar no input.

Resumindo, ele adicinou a propriedade filtro dentro de data() e inseriu na tag input do template a diretiva v-on:input="filtro = $event.target.value", e assim, a medida que o usuário vai digitando no input, o valor vai sendo enviado para a variável filtro.

O método fotosComFiltro() tem acesso a variável filtro - é a partir dela que ele faz a verificação para filtrar as fotos, então o vínculo entre o que é inserido no input e a execução da computed property é através desta variável filtro.

Espero ter te ajudado, fique a vontade para perguntar caso tenha ficado alguma dúvida.

Bons estudos!! =)

Boa tarde, Gostaria de agradecer, primeiramente, sua resposta.

A dúvida ainda não está 100% resolvida. A questão é: quem determina que a computed property fotosComFiltro() deve ser executada a cada alteração na variável filtro?

Como essa computed property fotosComFiltro() sabe que deve ser executada a cada alteração em filtro?

Essa computed property é utilzada no v-for e utiliza a propriedade filtro. O que estou entendendo é: como v-for itera uma computed property, e dado que a mesma utiliza filtro em seu corpo, qualquer alteração em filtro, automaticamente dispara a computed property. Ou seja, o disparo ocorre devido ao uso de fotosComFiltro() em v-for, e do uso da propriedade filtro na computed property.

Opa, Thiago!

Exatamente. Perdão por não ter pontuado isto na resposta, mas o disparo ocorre exatamente como você está entendendo! :)