La directiva v-bind es una directiva de Vuejs que se utiliza para vincular uno o más atributos, o un accesorio de componente a un elemento. Si ese atributo está vinculado a nuestros datos definidos en la instancia de Vuejs, los cambios dinámicos se pueden observar como cambios de datos. Primero, crearemos un elemento div con id como aplicación y aplicaremos la directiva v-bind a un elemento. Además, podemos usar un botón para ejecutar una función incluso cuando se hace clic, lo que invertirá el valor de los datos.
Sintaxis:
v-bind:attribute="expression";
Dado que los desarrolladores usan este atributo con demasiada frecuencia, Vuejs proporciona una abreviatura para este atributo de la siguiente manera:
:attribute="expression";
Cosas que podemos hacer con v-bind:
- Se pueden pasar varias clases.
- Las clases se pueden pasar como arrays.
- Admite variables que se asignarán como condición para clases y accesorios.
- Admite variables como arrays también.
- También se puede utilizar en componentes secundarios.
- Los estilos en línea también se pueden asignar mediante v-bind.
Parámetros: esta directiva acepta la expresión que decidirá qué valor de atributo usar.
Ejemplo: este ejemplo usa Vuejs para alternar las clases de un elemento con v-bind. Además, usaremos CSS para aplicar un color diferente a cada clase para que podamos verlos cambiar.
HTML
<!DOCTYPE html> <html> <head> <!-- Load Vuejs --> <script src= "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"> </script> <style> .active { color: blue; } .error { color: red; } </style> </head> <body> <div style="text-align: center;width: 600px;"> <h1 style="color: green;"> GeeksforGeeks </h1> <b> VueJS | v-bind directive </b> </div> <div id="canvas" style= "border:1px solid #000000; width: 600px;height: 200px;"> <div id="app" style= "text-align: center; padding-top: 40px;"> <button v-on:click= "ifActive = !ifActive"> Click to Toggle </button> // here we have used the : short hand of v-bind: <h1 :class= "{active: ifActive, error: !ifActive}"> GeeksforGeeks </h1> </div> </div> <script> var app = new Vue({ el: '#app', data: { ifActive: true } }) </script> </body> </html>
Producción: