Em Vue.js, existem várias maneiras de definir valores estáticos ou dinâmicos para exibir no modelo. Isso inclui o uso de interpolação de texto, codificação direta em seu HTML ou até mesmo o uso de expressões simples para modificar os dados.

É aqui que as propriedades computadas são muito úteis. Neste tutorial, examinaremos os fundamentos do uso de propriedades computadas no Vue. js . Em seguida, colocaremos todas as nossas novas habilidades em prática, criando um aplicativo de exemplo ao vivo.

Aqui está o que vamos cobrir:

O que são propriedades computadas em Vue.js?

Em Vue.js , as propriedades computadas permitem que você crie uma propriedade que pode ser usada para modificar, manipular e exibir dados em seus componentes de maneira legível e eficiente.

Você pode usar propriedades computadas para calcular e exibir valores com base em um valor ou conjunto de valores no modelo de dados. Ele também pode ter alguma lógica personalizada que é armazenada em cache com base em suas dependências, o que significa que não recarrega, mas tem uma dependência que muda, permitindo que ouça de alguma forma as mudanças e aja de acordo.

Para um exemplo básico , considere a propriedade computada count :

  

{{count}}

A propriedade count recebe o this.shopNumber como uma dependência da função data e retorna uma frase contendo o this.shopNumber e é disponibilizado diretamente no modelo.

Como as propriedades computadas são usadas no Vue.js?

Você pode usar propriedades computadas para resolver problemas mais complexos. Vamos detalhar mais alguns casos de uso em que as propriedades computadas do Vue.js são úteis.

Filtragem de dados

As propriedades computadas são ótimas para filtrar dados. Por exemplo, digamos que você esteja filtrando uma matriz de uma barra de pesquisa de entrada.

Na função data abaixo, temos um array, userData , contendo informações que desejamos exibir no componente, mas também precisamos permitir que o usuário filtre o que é exibido ao pesquisar com uma tag de entrada (associada à propriedade data searchQuery ). Tudo isso é feito dentro da propriedade computada resultQuery :

 export default { nome:"HelloWorld", dados() { Retorna { dados do usuário: [ { imagem: "https://pbs.twimg.com/profile_images/1347769407892811786/fJyOAatX_400x400.jpg", nome:"Tunde", uid:"LfhxERlvyfh2auIY0HnpidjJg3L2", }, { nome:"bola", imagem: "https://pbs.twimg.com/profile_images/1355220122512863234/0NZI8bzI_400x400.jpg", uid:"R6lyXuNwZfc9ztLDfIZBSZLg2QD2", }, { uid:"k8ZVBdA9wfetiB8vJV3Qc07NZty1", imagem: "https://pbs.twimg.com/profile_images/1321720900274868224/w5iM_Ads_400x400.jpg", nome:"Supremo", }, ], searchQuery: null }; }, calculado: { resultQuery () { if (this.searchQuery) { retornar this.userData.filter ((item)=> { retornar this.searchQuery .toLowerCase () .dividir("") .every ((v)=> item.name.toLowerCase (). inclui (v)); }); } senão { console.log (this.userData); return this.userData; } }, },
};

Em nosso modelo, searchQuery é vinculado à tag de entrada de pesquisa e os dados retornados da resultQuery são repetidos para serem exibidos no componente.

 

Basicamente, resultQuery verifica se o usuário digitou algo na tag input vinculada a searchQuery . Em seguida, ele filtra com o userData.name . Se o usuário não tiver pesquisado nada, ele retornará toda a matriz userData .

Criei um exemplo ao vivo em CodeSandbox .

Cálculos

Na mesma linha, podemos usar propriedades computadas para lidar com cálculos. Tudo o que precisamos fazer é passar a dependência para a propriedade, escrever o cálculo que precisamos executar e retornar a resposta:

 

Temos uma propriedade computada totalMarks onde passamos uma dependência ( número ) da função dados e a multiplicamos por dois:

  

{{totalMarks}}

Aqui está um exemplo ao vivo .

Em nosso modelo, simplesmente chamamos o nome da propriedade computada dentro dele e o valor é exibido no componente. Este pode parecer um exemplo relativamente simples, mas imagine que você está construindo uma calculadora financeira e lidando com várias dependências e cálculos mais complexos, como juros compostos:

 Juros compostos=P [(1 + i) n-1]

Onde:

  • P é o principal
  • i é a taxa de juros nominal anual em termos percentuais
  • n é o número de períodos de composição

Escrever essa fórmula diretamente em seu modelo não é bom para a legibilidade do código e, definitivamente, não é escalonável.

Boolean condicionais dentro de v-if

Você pode usar propriedades computadas para verificar se uma condição é verdadeira e, em seguida, usar v-if em nosso modelo para determinar se deve exibir um bloco de código ou não.

Aqui, o displayBoolean é definido como true por padrão e é definido como uma dependência da propriedade computada display . Em display , podemos verificar se a propriedade display é true . Se for, então retornamos true ; caso contrário, retornamos false :

 

O resultado de display é alimentado no v-if em nosso modelo para determinar se o bloco de código será exibido ou oculto. Em seguida, criamos um botão para alternar o valor de displayBoolean para fins de demonstração:

  

Exibir condicionalmente

Usando propriedades computadas com mapGetters

Considerando que estamos usando mapGetters , podemos usar propriedades computadas para acessar os dados recuperados de nossos getters.

No exemplo abaixo, renomeamos nosso getter getChatInfo para chatData e retornamos os dados dentro do getter por meio de nossa propriedade computada chatInfo :

  
 

Usando propriedades computadas como configuradores

Embora bastante heterodoxo, você também pode usar propriedades computadas para definir dados em vez de apenas recuperar dados como um getter de computador.

Podemos definir um setter computado assim:

 

theFullName é uma propriedade computada que tem a capacidade de definir dados vinculando a propriedade computada ao conteúdo de uma tag input usando v-model . Aqui, manipulamos o valor da propriedade de dados firstName digitando e vendo a mudança em tempo real:

  

{{theFullName}}

Confira um exemplo ao vivo .

Exemplo de propriedades computadas: construção de um carrinho de compras em Vue.js

Para colocar o que aprendemos em prática, vamos criar um carrinho de compras em Vue.js que permite ao usuário escolher a quantidade de um item que deseja, calcular o custo de vários itens e calcular o total incluindo taxas de envio.

Observação: para demonstrar as propriedades calculadas, o código para este aplicativo de exemplo pode não parecer totalmente SECO.

Cada item tem um preço fixo de $ 5,00. O usuário seleciona a quantidade de que precisa e isso é então vinculado à propriedade computada quantidade , que atua como getter e setter. O preço total de cada item (quantidade * preço unitário) é calculado em uma propriedade computada chamada priceCalc . Este processo é replicado para o segundo item com quantidade2 e priceCalc2 :

 

A adição do custo total de itens individuais é feita na propriedade computada subtotal , e o frete é calculado usando o mesmo padrão. total é a soma de todos os custos, incluindo frete.

Temos um botão que esconde e mostra nosso subtotal , shipping e total . Isso é feito tendo uma propriedade de dados showTotal definida como false e alternando-a dentro do método switchView . Clicar no botão aciona a função switchView .

Propriedades computadas vs. métodos

Propriedades e métodos computados no Vue.js podem parecer intercambiáveis, mas, tecnicamente, eles afetam os aplicativos Vue de maneira diferente.

Resultados do cache de propriedades computadas, o que significa que uma propriedade computada é executada apenas uma vez depois que o componente é montado, exceto para qualquer uma das alterações de dependência. Enquanto isso, um método é executado sempre que esse método é chamado no componente.

Propriedades e métodos calculados têm diferentes casos de uso. Muitas vezes depende se você deseja que uma função seja executada sempre, independentemente da dependência.

Imagine, por exemplo, que você tem um Math.random () dentro de uma função e deseja que ele seja recarregado todas as vezes. Nesse caso, você precisaria usar um método em vez de uma propriedade computada.

O armazenamento em cache ajuda a melhorar o desempenho, reduzindo o número de recarregamentos e solicitações que o aplicativo precisa fazer.

Conclusão

As propriedades computadas são praticamente uma necessidade no Vue.js porque permitem que você leia e escreva um código mais limpo, escalonável e legível.

Agora que você entende alguns casos de uso básicos para propriedades computadas, encorajo você a ler a documentação oficial do Vue.js e explore mais por conta própria para ver o que você pode fazer com as propriedades computadas no Vue.js.

A postagem Compreendendo as propriedades computadas no Vue.js apareceu primeiro no LogRocket Blog .

Source link