Полный цикл в digital

Цикл, директива v-for в Vue

Vue позволяет формировать теги в цикле. Это делается с помощью специальной директивы v-for. Давайте посмотрим, как она работает для массивов. Для этого сделаем следующий массив:

App.vuedata()
{
    return {
        arr: ['a', 'b', 'c'],
    }
}

Давайте выведем каждый элемент этого массива в отдельном абзаце. Для этого в представлении для начала сделаем абзац и напишем нашему абзацу директиву v-for:

App.vue<template>
    <p v-for="elem in arr">{{ elem }}</p>
</template>

Значением этой директивы следует указать имя перебираемого массива и переменную, в которую последовательно будут попадать элементы этого массива. В нашем случае имя массива будет arr, а для переменной мы придумаем имя elem. В результате наш абзац повторится столько раз, сколько элементов в нашем массиве.

Получение ключей при переборе массивов

Иногда кроме элементов массива, мы хотели бы получить доступ еще и к ключам. Для этого используется следующий расширенный синтаксис:

App.vue<template>
    <p v-for="(elem, key) in arr">
        {{ key }} {{ elem }}
    </p>
</template>

Перебор объектов

Объекты также перебираются с помощью директивы v-for. Давайте посмотрим, как это делается. Пусть у нас есть следующий объект:

App.vuedata()
{
    return {
        obj: {a: 1, b: 2, c: 3},
    }
}

Переберем этот объект циклом и выведем его элементы:

App.vue<template>
    <p v-for="elem in obj">
        {{ elem }}
    </p>
</template>

А теперь выведем ключи, элементы, порядковые номера элементов в объекте:

App.vue<template>
    <p v-for="(elem, key, index) in obj">
        {{ index }}
        {{ key }}
        {{ elem }}
    </p>
</template>

Перебор группы тегов

Иногда нам нужно формировать в цикле сразу на группу тегов. В этом случае мы можем объединить их общим родителем и применить цикл к нему:

<template>
    <div v-for="elem in arr">
        <p>{{ elem }}</p>
    </div>
</template>

Иногда нам не хотелось бы объединять теги общим родителем. В этом случае их можно объединить тегом template, применив цикл к этому тегу. Этот тег объединяет другие теги, но не попадает в итоговую верстку:

<template>
    <template v-for="elem in arr">
        <p>{{ elem }}</p>
    </template>
</template>

Перебор массива объектов

Научимся теперь перебирать массив объектов. Посмотрим на примере. Пусть есть следующий массив:

App.vuedata() {
    return {
        users: [
            {
                name: 'name1',
                surn: 'surn1',
            },
            {
                name: 'name2',
                surn: 'surn2',
            },
            {
                name: 'name3',
                surn: 'surn3',
            },
        ]
    }
}

Давайте переберем наш массив циклом и для каждого юзера в отдельном абзаце будем выводить его имя и фамилию:

App.vue<template>
    <p v-for="user in users">
        {{ user.name }}
        {{ user.surn }}
    </p>
</template>

Цикл в диапазоне

Можно сделать так, чтобы цикл повторился заданное количество раз. Это делается следующим образом:

App.vue<template>
    <p v-for="num in 10">
        {{ num }}
    </p>
</template>
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!