Руководство по использованию вывода списков во Vue.js


Директива v-for позволяет перебирать элементы массива и создавать соответствующие элементы интерфейса. Синтаксис директивы выглядит следующим образом: v-for=»item in items». Где item — это переменная для каждого элемента массива, а items — это сам массив данных.


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


<ul>
<li v-for="(value, key) in object" :key="key">{{ key }}: {{ value }}</li>
</ul>

v-for — основная директива для работы со списками в Vue.js. С ее помощью можно перебирать элементы массива и отрисовывать их на странице. Например, можно создать список с помощью следующего кода:

<ul>

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

</ul>

В данном примере мы перебираем элементы массива items и создаем для каждого элемента отдельный пункт списка <li>. С помощью директивы :key задаем уникальный ключ для каждого элемента, что позволяет Vue.js оптимизировать процесс обновления списка.

v-for также позволяет получать не только значение элемента, но и его индекс:

<ul>

  <li v-for=»(item, index) in items» :key=»index»>{{ index }}: {{ item }}</li>

</ul>

Кроме того, v-for позволяет использовать объекты в качестве источника данных:

<ul>

  <li v-for=»item in items» :key=»item.id»>{{ item.name }}: {{ item.age }} лет</li>

</ul>

В Vue.js также есть директива v-if, которая позволяет условно отображать элементы списка:

<ul>

  <li v-for=»item in items» :key=»item.id» v-if=»item.visible»>{{ item.name }}</li>

</ul>

Прежде всего, необходимо определить список данных в компоненте Vue.js. Для этого мы можем использовать обычный массив JavaScript:

data() {return {items: [{ id: 1, name: 'Продукт 1' },{ id: 2, name: 'Продукт 2' },{ id: 3, name: 'Продукт 3' }]}}

Затем, внутри шаблона Vue.js, мы можем использовать директиву v-for для итерации по каждому элементу списка:

<table><tr v-for="item in items" :key="item.id"><td>{{ item.id }}</td><td>{{ item.name }}</td></tr></table>

Кроме того, мы можем добавить дополнительную логику внутри шаблона Vue.js, например, фильтрацию или сортировку списка:

<table><tr v-for="item in filteredItems" :key="item.id"><td>{{ item.id }}</td><td>{{ item.name }}</td></tr></table>

В этом примере мы используем вычисляемое свойство filteredItems, которое возвращает отфильтрованный список элементов из исходного массива данных.

<div id="app"><ul><li v-for="item in items">{{ item }}</li></ul></div><script>new Vue({el: '#app',data: {items: ['Первый элемент', 'Второй элемент', 'Третий элемент']}});</script>
<div id="app"><ul><li v-for="item in items"><strong>{{ item.name }}</strong><em>{{ item.description }}</em></li></ul></div><script>new Vue({el: '#app',data: {items: [{name: 'Элемент 1',description: 'Описание элемента 1'},{name: 'Элемент 2',description: 'Описание элемента 2'},{name: 'Элемент 3',description: 'Описание элемента 3'}]}});</script>
<div id="app"><ul><li v-for="item in itemsWithPrefix">{{ item }}</li></ul></div><script>new Vue({el: '#app',data: {items: ['Элемент 1', 'Элемент 2', 'Элемент 3'],prefix: 'Префикс - '},computed: {itemsWithPrefix: function() {return this.items.map(function(item) {return this.prefix + item;});}}});</script>
<div id="app"><ul><li v-for="item in itemsFilteredByPrefix">{{ item }}</li></ul></div><script>new Vue({el: '#app',data: {items: ['Автомобиль', 'Апельсин', 'Банан', 'Мотоцикл'],prefix: 'А'},filters: {startsWithA: function(value) {return value.charAt(0) === this.prefix;}},computed: {itemsFilteredByPrefix: function() {return this.items.filter(this.startsWithA);}}});</script>

Для начала создайте новый экземпляр Vue.js и добавьте в его данные массив элементов, которые вы хотите отобразить. Например:

new Vue({data: {items: ['Яблоко', 'Банан', 'Апельсин']}})
<ul><li v-for="item in items" :key="item">{{ item }}</li></ul>

В этом примере мы создаем ненумерованный список (<ul>) и используем директиву v-for для итерации по массиву items. Каждый элемент списка отображается внутри элемента <li>.

Обратите внимание на атрибут :key. Ключи помогают Vue.js отслеживать состояние каждого элемента списка и обновлять только те элементы, которые изменились. Обычно в качестве ключей используется уникальный идентификатор элемента, но в этом примере мы используем сам элемент списка как ключ.

Для начала, необходимо определить массив данных, который будет использоваться для создания списка. Например, давайте рассмотрим список фруктов:

data() {return {fruits: ['Яблоко', 'Груша', 'Апельсин', 'Банан']}}
<ul><li v-for="fruit in fruits" :key="fruit">{{ fruit }}</li></ul>

В данном примере, для каждого элемента массива fruits будет создан тег <li>, в котором будет отображаться значение элемента.

Также, можно добавить дополнительную информацию к каждому элементу списка. Для этого можно использовать не только значения из массива, но и свойства объекта. Например:

data() {return {fruits: [{ name: 'Яблоко', color: 'красное' },{ name: 'Груша', color: 'зеленая' },{ name: 'Апельсин', color: 'оранжевый' },{ name: 'Банан', color: 'желтый' }]}}
<ul><li v-for="fruit in fruits" :key="fruit.name">{{ fruit.name }} - {{ fruit.color }}</li></ul>

Добавить комментарий

Вам также может понравиться