Kolejna szybka lekcja. Poznajemy v-for do wyświetlania list używając Vue.js. Do dzieła!

Ok, najpierw nasza apka:

const app = Vue.createApp({
    data() {
      return {
        people: [
            {
                id: 1,
                name: "John Doe"
            },
            {
                id: 2,
                name: "Jane Doe"
            }
        ]
      };
    },
    
  });
  
app.mount('#app');

Teraz markup:

<div id="app">
        <ul>
            <li v-for="person in people">Name: {{person.name}}</li>
        </ul>
</div>

Jak widać podejście dość ciekawe – nie mamy żadnych bloków if, else, endif jak w Laravelu, wewnątrz których prezentujemy markup, ani żadnych komponentów logicznych (jak w biblioteczkach control statements, które można doinstalować do Reacta), gdzie wrzucamy markup.

Zamiast tego na tym właśnie markupie, na tym elemencie robimy v-for. Ciekawe.

Powinniśmy jednak dołożyć klucz:

<div id="app">
        <ul>
            <li v-for="person in people" :key="person.id">Name: {{person.name}}</li>
        </ul>
</div>

Po co klucz? Domyślnie, jak usuniemy element z listy (tablicy w data) to Vue usunie ostatni <li> (czy dowolny ostatni element, który ma v-for), a później, często z błędami, spróbuje mergować pozostałe elementy.

Dopiero jak ustawimy klucz (i musi być jakoś unikalny dla rekordu) to możemy bezproblemowo usuwać elementy z tablicy.