Vue3 Enlace de estilos
Vue.js class
class y style son atributos de los elementos HTML, utilizados para establecer el estilo de los elementos. Podemos usar v-bind para establecer los atributos de estilo.
Al manejar class y style, v-bind permite que la expresión no solo sea una cadena, sino también un objeto o un array.
v-bind:classSe puede abreviar a:class。
Enlace del atributo class
Podemosv-bind:classestablecer un objeto, alternando así dinámicamenteclass:
Ejemplo 1
En el ejemplo, establecer isActive en true muestra un bloque div verde; si se establece en false, no se muestra:
Pruébalo »
El resultado de renderizado del div class en el ejemplo anterior es:
<div class="active"></div>
También podemos pasar más propiedades en el objeto para alternar dinámicamente múltiples classes.
Además,:classLa directiva también puede coexistir con el atributo class normal.
Ejemplo 2
El color de fondo de la clase text-danger anula el color de fondo de la clase active:
Pruébalo »
El resultado de renderizado del div class en el ejemplo anterior es:
<div class="static text-danger"></div>

Cuando isActive o hasError cambian, el valor del atributo class se actualizará en consecuencia. Por ejemplo, si el valor de active es true, la lista de class se convertirá en "static active text-danger".
También podemos enlazar directamente un objeto de los datos:
Ejemplo 3
El color de fondo de la clase text-danger anula el color de fondo de la clase active:
Pruébalo »
El resultado de renderizado del Ejemplo 3 es el mismo que el del Ejemplo 2.
Además, también podemos enlazar aquí una propiedad computada que devuelve un objeto. Este es un patrón común y potente:
Ejemplo 4
Pruébalo »
Sintaxis de array
Podemos pasar un array av-bind:class, el ejemplo es el siguiente:
El resultado de renderizado del div class en el ejemplo anterior es:
<div class="static active text-danger"></div>
También podemos usar una expresión ternaria para alternar las classes de la lista:
Ejemplo 6
errorClass siempre está presente; cuando isActive es true, se añade la clase activeClass:
Pruébalo »
El resultado de renderizado del div class en el ejemplo anterior es:
<div class="static text-danger"></div>
Vue.js style (estilos en línea)
Podemos, env-bind:styleestablecer estilos directamente, se puede abreviar a:style:
Ejemplo 7
Pruébalo »
El resultado de renderizado del div style en el ejemplo anterior es:
<div style="color: red; font-size: 30px;">Ejemplo</div>

También se puede enlazar directamente a unobjeto de estilo, para que la plantilla sea más clara:
v-bind:styleSe puede usar un array para aplicar varios objetos de estilo a un elemento:
Ejemplo 9
Pruébalo »
Nota: cuandov-bind:styleal usar propiedades CSS que requieren un prefijo específico, como transform, Vue.js detecta automáticamente y añade el prefijo correspondiente.
Múltiples valores
Se puede proporcionar a la propiedad en el enlace de style un array que contenga múltiples valores, a menudo usado para proporcionar varios valores con prefijo, por ejemplo:
<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>Esta escritura solo renderizará el último valor del array que sea compatible con el navegador. En este ejemplo, si el navegador es compatible con flexbox sin prefijo de navegador, solo se renderizará display: flex.
Uso del atributo class en componentes
Cuando usas el atributo class en un componente personalizado con un solo elemento raíz, estas classes se añadirán a ese elemento. Las classes existentes en ese elemento no se sobrescribirán.
Ejemplo 10
Pruébalo »
El resultado de renderizado del div class en el ejemplo anterior es:
<h1 class="classA classB classC classD">I like ejemplo!</h1>

Esto también aplica para class con enlace de datos:
<my-component :class="{ active: isActive }"></my-component>
Cuando isActive es true, el HTML se renderizará como:
<p class="active">Hi</p>
Si tu componente tiene múltiples elementos raíz, necesitas definir qué partes recibirán esta clase. Puedes usar$attrsel atributo del componente para hacer esto:
Ejemplo 11
Pruébalo »
Nota: en template,`se usan comillas invertidas, no comillas simples.'。
El resultado de renderizado del div class en el ejemplo anterior es:
<div id="app" data-v-app=""><p class="classA">I like ejemplo!</p><span>这是一个子组件</span></div>
