Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2720

Coding Potions: Cómo crear bucles v-for de los componentes de Vue

$
0
0

Bucles for con v-for

Como en muchos lenguajes de programación, en las vistas de Vue también podemos tener bucles, en este caso para pintar varios elementos en el HTML. Vamos a verlo con un ejemplo:

<template><ulclass="list"><liv-for="(item, i) in elements":key="i">
    ID:  - 
    </li></ul></template><script>exportdefault{data:()=>({elements:[{name:"Elemento 1",id:1},{name:"Elemento 2",id:2},{name:"Elemento 3",id:3}]})};</script><style scoped></style>

Pintar una lista en Vue

En este ejemplo lo que hago es declarar una variable llamada elemets inicializada con un array de objetos. En la vista lo que hago es crear una lista <ul> y dentro cada uno de los items con un v-for para que se cree un loop y se pinten.

Dentro del v-for lo que hago es recorrer el array de objetos, en este caso entre paréntesis pongo (item, i). Estos son los nombres que yo he decidido para estas variables, pero tu puedes poner los que quieras. Veamos qué se guarda en las variables:

  • “item” es el nombre que le he puesto a la variable que contendrá cada uno de los items, a medida que avanza el bucle este valor va cambiando para que lo puedas pintar.
  • “i” es el nombre que le he puesto a la variable contador, es decir, en cada paso del bucle esta variable contendrá el número del item que se está pintando, es decir, para el primer elemento “i” vale 0, para el segundo vale 1 etc.

Otro detalle a tener en cuenta en los bucles es la key. Vue recomienda que siempre con el bucle for se utilice una key que sea única para cada item del bucle. Lo que hago es crear la key con el valor de la variable “i” del contador para que cada item tenga una key única. Esto sirve para que Vue pueda identificar correctamente cada item del bucle. :key="i"

Por último dentro de cada <li> meto con la notación punto cada propiedad de cada item que quiero pintar (id y name).

Si abres la página con este ejemplo podrás ver que se crea una lista que pinta cada uno de los elementos definidos dentro del array elements. Si modificas el array y metes nuevos objetos verás que se añaden sin tener que crear nuevos <li>. Es decir el bucle for duplicará la etiqueta HTML sobre la que esté declarado (li en este ejemplo) por cada una de las iteracciones del bucle.

Pero cuidado porque en la vista hemos dicho que pinte el id y el name de los arrays y si metes elementos en el array que no tengan estas propiedades no se pintarán.

Como podrás suponer, los v-for también se pueden anidar:

<template><ulclass="list"><liv-for="(item, i) in elements":key="i">
      ID:  -  | childrens: 
      <spanv-for="(children, j) in item.childrens":key="'child' + j">
        , 
      </span></li></ul></template><script>exportdefault{data:()=>({elements:[{name:"Elemento 1",id:1,childrens:[1,3,4]},{name:"Elemento 2",id:2,childrens:[3,5,5]},{name:"Elemento 3",id:3,childrens:[5,7,3]}]})};</script><style scoped></style>

Aquí para el segundo bucle he decidido crear la key con la unión de un string ‘child’ y el contador del segundo array para que se único para cada hijo y no coincida con los del padre.


Viewing all articles
Browse latest Browse all 2720

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.