Wyświetlanie listy przy użyciu dyrektywy v-for
Dyrektywa v-for używa specjalnej składni aktualnyElementy in tablicaZDanymi gdzie tablicaZDanymi jest... źródłową tablicą z danymi, a aktualnyElementy jest swego rodzaju zmienną lokalną wskazującą na aktualny element tablicy. Możesz to zobaczyć na poniższym przykładzie:
new Vue({
  data() {
    return {
      fruits: ['Apple', 'Pear', 'Plum', 'Banana'],
    };
  },
}).$mount('#app');
<ul>
  <li v-for="fruit in fruits">{{ fruit }}</li>
</ul>
Dostęp do indeksu elementu
Wewnątrz pętli v-for możesz też korzystać z indeksu elementu, który właśnie jest iterowany. Składnia zmienia wtedy formę na (element, index) in tablica. Oto przykład:
new Vue({
  data() {
    return {
      prefix: 'I <3',
      fruits: ['Apple', 'Pear', 'Plum', 'Banana'],
    };
  },
}).$mount('#app');
<div id="app">
  <div v-for="(fruit, index) in fruits">{{ index }} - {{ prefix }} {{ fruit }}</div>
</div>
Zwróć też uwagę na fakt, że wewnątrz pętli v-for, oprócz nowych zmiennych, masz normalny dostęp do wszystkich pól danych znajdujących się na instancji Vue. W powyższym przykładzie w każdej iteracji odnoszę się do pola prefix. zapisz się na szkolenie z Vue.js.
Pętla v-for na obiekcie
Vue pozwala iterować nie tylko po tablicach, ale również obiektach. W swojej standardowej formie value in someObject pod value podstawione zostaną kolejne wartości pól obiektu. Możesz dostać się też do kluczy obiektu oraz indeksów za pomocą odpowiednio (value, key) in someObject i (value, key, index) in someObject. Tak wygląda to w akcji:
new Vue({
  data() {
    return {
      fruits: {
        Apple: 4,
        Pear: 3,
        Plum: 5,
        Banana: 2,
      },
    };
  },
}).$mount('#app');
<div id="app">
  <div v-for="(quantity, fruit, index) in fruits">{{ index }}. {{ quantity }}x {{ fruit }}</div>
</div>
Ćwiczenie
Świetnie - wiesz już jak działa pętla v-for w Vue.js! Użyj tej wiedzy aby wyświetlić zagnieżdżoną listę, albo inaczej mówiąc listę list. Możesz posłużyć się poniższym Code Penem. Zdefiniowałem tam listę kategorii, a w każdej z kategorii listę produktów. Po prostu kliknij "edit on CodePen" i do dzieła! Nie zapomnij zamieścić swojego rozwiązania w komentarzu.
