La renderització de llistes és una funcionalitat fonamental en Vue.js que permet mostrar col·leccions de dades de manera dinàmica. En aquesta secció, aprendrem com utilitzar la directiva v-for
per iterar sobre arrays i objectes, i com gestionar claus úniques per a cada element de la llista.
Conceptes clau
- Directiva
v-for
: Utilitzada per iterar sobre arrays i objectes. - Claus úniques (
key
): Necessàries per a una renderització eficient i per mantenir l'estat dels elements de la llista. - Iteració sobre arrays: Com iterar i mostrar elements d'un array.
- Iteració sobre objectes: Com iterar i mostrar propietats d'un objecte.
Directiva v-for
La directiva v-for
s'utilitza per renderitzar una llista d'elements repetint un bloc de codi per a cada element de l'array o objecte.
Sintaxi bàsica
En aquest exemple, items
és un array i item
representa cada element de l'array. La directiva v-for
crea un element <li>
per a cada element de items
.
Exemple pràctic
Suposem que tenim un array de tasques i volem mostrar-les en una llista:
<div id="app"> <ul> <li v-for="task in tasks" :key="task.id"> {{ task.name }} </li> </ul> </div> <script> new Vue({ el: '#app', data: { tasks: [ { id: 1, name: 'Comprar menjar' }, { id: 2, name: 'Estudiar Vue.js' }, { id: 3, name: 'Fer exercici' } ] } }); </script>
Explicació del codi
- HTML: Utilitzem la directiva
v-for
per iterar sobre l'arraytasks
i crear un element<li>
per a cada tasca. - JavaScript: Definim una instància de Vue amb un array
tasks
en el seudata
.
Claus úniques (key
)
És important utilitzar l'atribut :key
per proporcionar una clau única per a cada element de la llista. Això ajuda Vue a identificar de manera eficient els elements quan la llista canvia.
Iteració sobre objectes
A més d'iterar sobre arrays, també podem iterar sobre les propietats d'un objecte utilitzant v-for
.
Exemple pràctic
<div id="app"> <ul> <li v-for="(value, key) in user" :key="key"> {{ key }}: {{ value }} </li> </ul> </div> <script> new Vue({ el: '#app', data: { user: { name: 'Joan', age: 30, occupation: 'Desenvolupador' } } }); </script>
Explicació del codi
- HTML: Utilitzem
v-for
per iterar sobre les propietats de l'objecteuser
.key
representa el nom de la propietat ivalue
el seu valor. - JavaScript: Definim una instància de Vue amb un objecte
user
en el seudata
.
Exercicis pràctics
Exercici 1: Llista de productes
Crea una aplicació Vue que mostri una llista de productes amb el seu nom i preu.
Solució
<div id="app"> <ul> <li v-for="product in products" :key="product.id"> {{ product.name }} - {{ product.price }} € </li> </ul> </div> <script> new Vue({ el: '#app', data: { products: [ { id: 1, name: 'Ordinador', price: 1000 }, { id: 2, name: 'Telèfon', price: 500 }, { id: 3, name: 'Tablet', price: 300 } ] } }); </script>
Exercici 2: Llista de tasques amb estats
Crea una aplicació Vue que mostri una llista de tasques amb el seu nom i estat (completada o no completada).
Solució
<div id="app"> <ul> <li v-for="task in tasks" :key="task.id"> {{ task.name }} - {{ task.completed ? 'Completada' : 'No completada' }} </li> </ul> </div> <script> new Vue({ el: '#app', data: { tasks: [ { id: 1, name: 'Comprar menjar', completed: true }, { id: 2, name: 'Estudiar Vue.js', completed: false }, { id: 3, name: 'Fer exercici', completed: false } ] } }); </script>
Errors comuns i consells
- Oblidar la clau (
key
): No proporcionar una clau única pot causar problemes de rendiment i comportaments inesperats. - Utilitzar índexs com a claus: Evita utilitzar l'índex de l'array com a clau, ja que pot causar problemes quan l'ordre dels elements canvia.
- No gestionar correctament els canvis en la llista: Assegura't de gestionar correctament l'addició, eliminació i actualització d'elements en la llista per evitar inconsistències.
Conclusió
La renderització de llistes amb Vue.js és una tècnica poderosa que permet mostrar col·leccions de dades de manera dinàmica i eficient. Utilitzant la directiva v-for
i proporcionant claus úniques per a cada element, podem crear aplicacions Vue que gestionin llistes de manera efectiva. Amb els exercicis pràctics, hauràs adquirit una comprensió sòlida de com utilitzar aquestes tècniques en les teves pròpies aplicacions.
Curs de Vue.js
Mòdul 1: Introducció a Vue.js
- Què és Vue.js?
- Configuració de l'entorn de desenvolupament
- Creant la teva primera aplicació Vue
- Entenent la instància de Vue
Mòdul 2: Conceptes bàsics de Vue.js
- Sintaxi de plantilles
- Enllaç de dades
- Propietats computades i observadors
- Enllaços de classes i estils
- Renderització condicional
- Renderització de llistes
Mòdul 3: Components de Vue.js
- Introducció als components
- Props i esdeveniments personalitzats
- Slots
- Components dinàmics i asíncrons
- Comunicació entre components
Mòdul 4: Vue Router
- Introducció a Vue Router
- Configuració de Vue Router
- Rutes dinàmiques
- Rutes niades
- Guàrdies de navegació
Mòdul 5: Gestió d'estat amb Vuex
- Introducció a Vuex
- Estat, getters, mutacions i accions
- Mòduls a Vuex
- Utilitzant Vuex en components
- Patrons avançats de Vuex
Mòdul 6: Directives de Vue.js
Mòdul 7: Plugins de Vue.js
Mòdul 8: Proves en Vue.js
Mòdul 9: Conceptes avançats de Vue.js
- Funcions de renderització i JSX
- Renderització del costat del servidor (SSR) amb Nuxt.js
- API de composició de Vue 3
- Optimització del rendiment