Vue-də massivlərin reaktivliyi

Reaktivlik hətta v-for ilə çıxarılan massivlərdə dəyişikliklər edildikdə də işləyir. Gəlin nümunə üçün elə edək ki, düyməni kliklədikdə massivə reaktiv şəkildə yeni element əlavə olunsun və dəyişikliklər ani olaraq ekranda da görünsün.

Gəlin təsvir olunanı həyata keçirək. Fərz edək ki, bizim massivimiz var:

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

Gəlin bu massivin elementlərini sikl içərisində çıxaraq:

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

Gəlin kliklədikdə massivə yeni element əlavə edən bir düymə edək:

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

Gəlin uyğun metodu həyata keçirək:

App.vuemethods: {
  add: function() {
    this.arr.push('xxx');
  }
}
Задание 1

Bir düymə verilib. Bir massiv verilib. Bu massivin elementlərini ul siyahısı şəklində çıxarın. Elə edin ki, düyməni kliklədikdə bu siyahının sonuna yeni maddə əlavə olunsun.

Задание 2

Bir düymə verilib. Bir massiv verilib. Bu massivin elementlərini ul siyahısı şəklində çıxarın. Elə edin ki, hər dəfə düyməni kliklədikdə siyahının ilk maddəsi silinsin.

Задание 3

Bir düymə verilib. Bir massiv verilib. Bu massivin elementlərini ul siyahısı şəklində çıxarın. Elə edin ki, hər dəfə düyməni kliklədikdə siyahının sonuncu maddəsi silinsin.

Задание 4

Bir düymə verilib. Bir massiv verilib. Bu massivin elementlərini ul siyahısı şəklində çıxarın. Elə edin ki, hər dəfə düyməni kliklədikdə siyahının sondan əvvəlki maddəsi silinsin.

Задание 5

Bir düymə verilib. Bir massiv verilib. Bu massivin elementlərini ul siyahısı şəklində çıxarın. Elə edin ki, düyməni kliklədikdə siyahının maddələri çeşidlənmiş vəziyyətə gəlsin.

Задание 6

Bir düymə verilib. Bir massiv verilib. Bu massivin elementlərini ul siyahısı şəklində çıxarın. Elə edin ki, düyməni kliklədikdə siyahının maddələri tərs qaydada düzülsün.

İstisnalar

JavaScript-in məhdudiyyətləri səbəbindən, Vue massivdə aşağıdakı dəyişiklikləri aşkarlaya bilmir: bir elementə indeksə görə birbaşa mənimsətmə: items[açar] = yeniDeyer və massivin uzunluğunun aşkar şəkildə dəyişdirilməsi, məsələn: items.length = yeniUzunluq.