Atualizado: 21/06/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Vinculando Estilos no Vue.js

No Vue.js, é possível definir estilos diretamente em elementos HTML por meio do atributo style, utilizando pares de nome-valor das propriedades CSS. Esses valores podem ser definidos diretamente como strings ou dinamicamente através de propriedades do objeto de dados (data) do Vue. Essa abordagem possibilita a manipulação dinâmica dos estilos de um elemento.

Estilos dinâmicos com propriedades computadas

Para facilitar o gerenciamento de diversos estilos, eles podem ser encapsulados em uma propriedade computada. Isso melhora a organização do código e centraliza as definições de estilo, tornando o componente mais claro e fácil de manter.

No exemplo a seguir, os estilos de um elemento são controlados dinamicamente por meio de uma propriedade computada chamada styleObj. Essa propriedade retorna um objeto contendo as definições de estilo, que são atualizadas conforme o usuário insere valores nos campos de entrada.

<!DOCTYPE html>
<html>
  <head>
    <title>Explorando Vue.js</title>
    <meta charset="utf-8" />
  </head>
  <body>
    <script src="https://unpkg.com/vue"></script>
    <div id="app">
      <div v-bind:style="styleObj"></div>
      <br /><br />
      <input type="text" v-model="color" placeholder="Cor de fundo" />
      <br /><br />
      <input type="number" v-model="width" placeholder="Largura (px)" />
      <br /><br />
      <input type="number" v-model="height" placeholder="Altura (px)" />
    </div>
    <script>
      Vue.createApp({
        data() {
          return {
            color: "red",
            width: 75,
            height: 75,
          };
        },
        computed: {
          styleObj() {
            return {
              "background-color": this.color,
              height: this.height + "px",
              width: this.width + "px",
            };
          },
        },
      }).mount("#app");
    </script>
  </body>
</html>

Vinculando Estilos em Vue.js

Neste caso, styleObj encapsula as definições de estilo, como background-color, height e width. Cada valor é atualizado automaticamente conforme o estado do componente é alterado.

ℹ️ Quando uma propriedade CSS possui um nome composto com traços (como "background-color"), é necessário usar aspas ao defini-la para que seja interpretada corretamente pelo JavaScript.

Aplicação de múltiplos objetos de estilo

O Vue.js também permite combinar múltiplos objetos de estilo ao mesmo tempo. Isso pode ser feito utilizando a sintaxe de array no v-bind:style, tornando o gerenciamento de estilos mais modular e flexível.

O próximo exemplo divide os estilos em duas propriedades computadas: colorStyle, responsável pela cor de fundo, e sizeStyle, que gerencia as dimensões do elemento. Essas propriedades são combinadas em um array para serem aplicadas ao elemento.

<!DOCTYPE html>
<html>
  <head>
    <title>Explorando Vue.js</title>
    <meta charset="utf-8" />
  </head>
  <body>
    <script src="https://unpkg.com/vue"></script>
    <div id="app">
      <div v-bind:style="[colorStyle, sizeStyle]"></div>
      <br /><br />
      <input type="text" v-model="color" placeholder="Cor de fundo" />
      <br /><br />
      <input type="number" v-model="width" placeholder="Largura (px)" />
      <br /><br />
      <input type="number" v-model="height" placeholder="Altura (px)" />
    </div>
    <script>
      Vue.createApp({
        data() {
          return {
            color: "red",
            width: 75,
            height: 75,
          };
        },
        computed: {
          colorStyle() {
            return { "background-color": this.color };
          },
          sizeStyle() {
            return {
              height: this.height + "px",
              width: this.width + "px",
            };
          },
        },
      }).mount("#app");
    </script>
  </body>
</html>

Aqui, os estilos são separados em diferentes propriedades computadas, proporcionando uma abordagem mais modular. As propriedades colorStyle e sizeStyle são combinadas no array v-bind:style, permitindo que cada aspecto do estilo seja gerenciado independentemente.

Documentação oficial:

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com