Pelo que eu entendi utilizamos o computed e o methods para declarar funções que serão utilizadas pelo componente. Qual é a diferença entre eles?
Pelo que eu entendi utilizamos o computed e o methods para declarar funções que serão utilizadas pelo componente. Qual é a diferença entre eles?
Olá Mayki, tudo bem?
A principal diferença entre computed e methods tem haver com o cachê, isto é, se você utiliza a função dentro de methods ela sempre necessitará ser executada para ter o retorno, enquanto dentro de computed existe um cachê que apenas irá reexecutar a função caso alguma dependência seja alterada (o valor de uma variável por exemplo), caso nada tenha sido alterado, ele não precisa executar a função novamente, pois já tem no cache o resultado :)
Entendeu? Vou deixar uma parte da documentação que pode te dar mais exemplos: Documentação Methods Vue
Abraços e Bons Estudos!
Fala ai Mayki, tudo bem? Vamos lá:
Pelo que eu entendi utilizamos o computed e o methods para declarar funções que serão utilizadas pelo componente. Qual é a diferença entre eles?
computed
: Geralmente são funções que criamos para gerar diferentes saídas referente aos dados do componente, isso evitar a necessidade de escrever essas regras diretamente no template, por exemplo: Tornar uma String
em caixa alta, inverter uma String
, calcular o valor de um produto, etc...Ao usar o computed
nosso template vai chamá-lo como se fosse uma propriedade e não função: {{ algumComputed }}
.
method
: Os métodos são funções que nosso template pode chamar, ou seja, uma função quando clicar em um botão, submeter um formulário e coisas do tipo.A diferença maior está no cache, propriedades computadas (computed
) apenas são recomputadas caso sua dependência mude de valor, ou seja, se estamos invertando o valor de uma String
, essa inversão apenas vai ser processada novamente caso a String
sofra alguma alteração.
Já no caso dos métodos (methods
), o processamento sempre será feito e refeito.
Sendo assim, para propriedades é recomendável o uso do computed
.
Espero ter ajudado.
Muto obrigado. Ambas as resposta ajudaram muito
Magina, sempre que precisar não deixe de criar suas dúvidas,
Abraços e bons estudos.