Vue.js итерация объектов

Vue.js итерация коллекций

Как правило, мы можем использовать v-for для  любого итеративного типа данных. Object в JavaScript — это набор данных «ключ-значение», и мы можем итерировать его свойства
через с помощью v-for.

Пример v-for для перебора ключей и значений объекта, подобен предыдущему примеру с v-for с крошечной разницей.

Здесь мы  выбираем не только value и index, но еще и key. Таким образом, синтаксис теперь становится следующим:

v-for="(value, key, index) in obj"

Здесь obj — наш целевой объект для итерации.

Например, предположим, что у нас есть следующий объект с именем course, который
содержит название, описание и имя лектора:

<script setup>
  const course = {
    title: 'Frontend development with Vue',
    description: 'Learn the awesome of Vue',
    lecturer: 'Maya and Raymond'
  }
</script>

В template мы перебираем свойства курса и выводим их значение в формате <index>.< key > : <value>, как показано в следующем
блоке кода:

<template>
  <ul>
    <li v-for="(value, key, index) in course" :key="key">{{index}}. {{key}}: {{value}}</li>
  </ul>
</template>

Вывод каждого элемента, будет выглядеть так:

0. title: Frontend development with Vue

1. description: Learn the awesome of Vue

2. lecturer: Maya and Raymond

Далее вы попрактикуетесь в написании базовых циклов для свойств объекта.

 

Упражнение - итерация объекта через v-for

Создайте и импортируйте компонент как это показано в упражении.

Создайте скелет вашего компонента используя секции - template, script, styles.

Секция script будет выглядеть так:

<script setup>
  const information = {
    title: "My list component information",
    subtitle: "Vue JS basics",
    items: ["Looping", "Data", "Methods"],
  }
</script>

В секции <template> мы будем просматривать информацию и отображать значения свойств объекта:

<template>
  <div>
    <div v-for="(value, key) in information" :key="key">
      {{key}}: {{ value }}
    </div>
  </div>
</template>

Обратите внимание, что Vue отображает значение для элементов, которые представляет собой массив строк, так же, как мы
объявили их в секции data - в квадратных скобках.

Чтобы отобразить данные в лучшем виде, мы можем использовать встроенный JavaScript метод toString() для преобразования значений всех элементов в строку с разделением запятыми.

<template>
  <div>
    <div v-for="(value, key) in information" :key="key">
       {{key}}: {{ value.toString() }}
    </div>
  </div>
</template>

Понимание итераций (или циклов) является ключом не только к работе с Vue, но и JavaScript в целом. Теперь, когда мы рассмотрели, как обращаться с
циклами с использованием директивы v-for и важности key мы изучим, как использовать и писать методы в компоненте.