Реактивность массивов в Vue

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

Давайте реализуем описанное. Пусть у нас в есть массив:

data() { return { arr: ['a', 'b', 'c'], } }

Выведем элементы этого массива в цикле:

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

Сделаем кнопку, по нажатию на которую в массив будет добавляться новый элемент:

<template> <p v-for="elem in arr"> {{ elem }} </p> <button @click="add">add</button> </template>

Реализуем соответствующий метод:

methods: { add: function() { this.arr.push('xxx'); } }

Дана кнопка. Дан массив. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы по нажатию на кнопку в конец этого списка добавился новый пункт.

Дана кнопка. Дан массив. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы каждый раз по нажатию на кнопку списка удалялся первый пункт.

Дана кнопка. Дан массив. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы каждый раз по нажатию на кнопку списка удалялся последний пункт.

Дана кнопка. Дан массив. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы каждый раз по нажатию на кнопку списка удалялся предпоследний пункт.

Дана кнопка. Дан массив. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы по нажатию на кнопку пункты списка отсортировались.

Дана кнопка. Дан массив. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы по нажатию на кнопку пункты списка выстроились в обратном порядке.

Исключения

Из-за ограничений JavaScript, Vue не способен заметить следующие изменения в массиве: прямую установку элемента по индексу: items[ключ] = новоеЗначение и явное изменение длины массива, например: items.length = новаяДлина.



Чат с GPT Компилятор