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

  1. Directiva v-for: Utilitzada per iterar sobre arrays i objectes.
  2. Claus úniques (key): Necessàries per a una renderització eficient i per mantenir l'estat dels elements de la llista.
  3. Iteració sobre arrays: Com iterar i mostrar elements d'un array.
  4. 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

<li v-for="item in items" :key="item.id">
  {{ item.text }}
</li>

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

  1. HTML: Utilitzem la directiva v-for per iterar sobre l'array tasks i crear un element <li> per a cada tasca.
  2. JavaScript: Definim una instància de Vue amb un array tasks en el seu data.

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.

<li v-for="task in tasks" :key="task.id">
  {{ task.name }}
</li>

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

  1. HTML: Utilitzem v-for per iterar sobre les propietats de l'objecte user. key representa el nom de la propietat i value el seu valor.
  2. JavaScript: Definim una instància de Vue amb un objecte user en el seu data.

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

  1. Oblidar la clau (key): No proporcionar una clau única pot causar problemes de rendiment i comportaments inesperats.
  2. 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.
  3. 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

Mòdul 2: Conceptes bàsics de Vue.js

Mòdul 3: Components de Vue.js

Mòdul 4: Vue Router

Mòdul 5: Gestió d'estat amb 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

Mòdul 10: Construcció i desplegament d'aplicacions Vue.js

Mòdul 11: Projectes de Vue.js del món real

© Copyright 2024. Tots els drets reservats