8 - Watchers Flashcards
(9 cards)
O que a função watch faz?
O watch é usado para chamar callbacks quando uma propriedade reativa é alterada
Em vue, qual a principal diferença entre o caso de uso de uma compudata e um watch?
Apesar de ambos os métodos serem disparados quando um estado reativo é modificado, temos algumas diferenças:
- o watch é disparado automaticamente, já a computada, apenas se invocada no código ou template
- A computada é ideal para a computação de valores, já o watch, para execução de código com side effect, como modificação no DOM, modificação de outros estados, etc
- Uma computed retorna um valor, enquanto um watcher não
Quais os tipos de dados podem ser usados como “fonte” em watch?
Ref, incluindo uma computed ref, um objeto reativo, uma função getter ou um array
Como criar deep watchers em vue?
Para criar watchers que observam mudanças em toda a estrutura de um objeto reativo usamos a propriedade {deep : true}. Após a versão 3.5 do Vue essa propriedade também aceita um valor numérico indicando a profundidade máxima que o watch deve observar
Existe algum problema em usar deep em watchers de modo indiscriminado?
Sim, deep é poderoso, mas custoso, já que ele aumenta o custo de observação pois o Vue precisa percorrer todas as propriedades internas. Isso pode ter um impacto na performance em grandes esturutras de dados. É recomendado usar apenas quando necessário.
Para que serve a propriedade “immediate” em um watcher?
Faz com que o watcher execute sua função imediatamente na criação, logo antes do componente ser montado, e não apenas quando o valor observado mudar.
Para que serve a propriedade “once” em um watcher?
Ela faz com que o callback do watch execute apenas uma vez após o estado observado mudar, e não todas as vezes que ele sofre alteração
O que é e para que serve o WatchEffect em vue?
É um método semelhante ao watch e que “rastreia automaticamente” as dependências reativas usadas no corpo do callback, sem precisar declará-las. Ele também funciona de modo imediado, como o watch com a propriedade immediate
Por que usar watchEffect é mais recomendável que deep watchers?
Há um ganho de performance já que em um deep watcher todas as propriedades do objeto são monitoradas, enquanto que em um watchEffect apenas aquelas que estão sendo usadas no bloco de código precisam de tracking