VueJS

Directiva v-for en Vue JS

Resumen

En este post te mostraré cómo repetir cosas en la vista de una app con Vue.JS usando v-for.

v-for permite iterar arreglos, objetos y también hacer ciclos.

Veremos cómo usar v-for, además de proporcionar la clave con :key y finalmente tomar el índice y el valor por separado.

Nota: a través de los ejemplos usaré Bootstrap 4 para un mejor diseño, aunque esto no va a interferir con el tema principal de v-for y Vue.

Sintaxis de v-for

La sintaxis de v-for en Vue.js es:

v-for="elemento in coleccion"

Si se quiere obtener el índice se puede con:

v-for="(elemento, indice) in coleccion"

Y en caso de repetir cierta cantidad de veces:

v-for="numero in 5" (bueno, en este caso se repetiría 5 veces)

Ejemplo 1 – Directiva v-for con arreglo

La directiva se coloca dentro de una etiqueta HTML que se quiere repetir. Vamos a ver un ejemplo sencillo con una lista:

See the gist on github.

Comenzamos declarando nuestro contenedor de app en la línea 17.

En la línea 21 tenemos a v-for, que va a repetir la variable (disponible solo en la vista) llamada mascota en los elementos que haya en mascotas.

Dentro de la lista (elemento li) accedemos a la variable y la mostramos.

El JavaScript para esto es el siguiente:

See the gist on github.

Simplemente declaramos el arreglo mascotas en data.

Nota: si el arreglo está vacío, no se genera ningún error.

Recorrer arreglo con Vue.JS usando v-for

Puedes probar el ejemplo aquí.

Ejemplo 2 – repetir sobre objeto usando Vue.JS

Además de un arreglo, también se pueden repetir los valores de un objeto o diccionario de JavaScript.

Por ejemplo. Tenemos la siguiente definición:

See the gist on github.

En la línea 4 estamos declarando un objeto que tiene nombres de alumnos como clave, y la calificación de cada uno como valor.

En el HTML hacemos lo siguiente:

See the gist on github.

Es la misma sintaxis. Si ahora ejecutamos la app veremos que se renderiza una lista con calificaciones.

Si quisiéramos mostrar el nombre, es decir, la clave, tendríamos que recorrer con dos variables como veremos a continuación.

Ejemplo 3: repetir sobre objeto con clave y valor

Para obtener la clave y el valor del objeto al usar v-for simplemente hay que declarar ambas variables. Cambiando el v-for así:

See the gist on github.

Lo que daría la siguiente salida en donde se imprime tanto la clave como el valor:

Sintaxis de clave, valor en Vue.js

Puedes probar el ejemplo aquí.

Ejemplo 4 con Vue – Recorrer arreglo con índice y valor

Lo mismo que aplicamos al recorrer el diccionario podemos aplicarlo cuando recorremos un arreglo.

En este caso tomaríamos el índice numérico y el valor del arreglo.

Nota: vamos a ver cómo recorrer un arreglo de objetos, así vemos también cómo es posible acceder al objeto dentro del v-for.

Veamos el siguiente ejemplo. Comenzamos por el script:

See the gist on github.

Tenemos un arreglo normal, que tiene objetos en su interior con las propiedades nombre y artista.

Para recorrerlo hacemos esto:

See the gist on github.

Ahora tenemos el índice, y el objeto de la canción.

Repetir contenido de arreglo de objetos con Vue.js

Para dibujarla simplemente accedemos a cada propiedad a través del punto.

Puedes probar el ejemplo aquí.

Ejemplo 5 – Dibujar tabla con v-for

Lo anterior también puede ser dibujado dentro de una tabla, pues v-for se encarga de repetir los elementos sin importar el tipo.

Veamos el ejemplo. Lo único que cambia es la vista, pues los datos se quedan intactos.

La vista queda así:

See the gist on github.

Lo único que hacemos es repetir el tr (la fila de la tabla) en la línea 29.

El resultado es el siguiente:

Renderizar tabla con Vue usando directiva v-for

Puedes probarlo aquí.

Ejemplo 6: la clave o key

En algunas ocasiones, y sobre todo cuando queremos que los cambios se reflejen si modificamos el arreglo u objeto, es necesario proporcionar al elemento una clave.

Esta clave debe ser única, y debe ser un tipo de dato primitivo.

En el caso de las canciones la clave podría ser el índice, pues no se repite. La misma es especificada con :key

See the gist on github.

Lo único que cambia está en la línea 29, pues especificamos el atributo key.

A nivel de vista esto no cambia nada, pero cuando se desean vigilar y actualizar los cambios de un objeto esto es necesario. Además, siempre es una buena práctica especificar una clave.

Pruébalo aquí.

Ejemplo 7: un simple ciclo

Para terminar, veamos cómo repetir un elemento determinadas veces, algo como un simple ciclo for.

Si queremos repetir algo determinadas veces, especificamos un número en lugar de un arreglo u objeto.

Por ejemplo:

v-for="numero in 5"

Modifiquemos la vista para que ahora sea así:

See the gist on github.

Presta atención a la línea 28. Lo que hacemos es contar del 1 al 5, usando un índice.

El script queda así (solo se define la app y su elemento, pero no hay datos, porque el ciclo se hace en la vista):

See the gist on github.

Puedes probarlo aquí.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

2 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

3 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

3 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

4 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

2 semanas hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

2 semanas hace

Esta web usa cookies.