Vue'de Dizilerin Tepkiselliği

Tepkisellik, v-for ile render edilen dizilerde değişiklik yapıldığında da tetiklenir. Örnek olarak, bir butona tıklandığında diziye yeni bir elemanın tepkisel olarak eklendiğini ve değişikliklerin anında ekranda da gerçekleştiğini yapalım.

Anlatılanı hayata geçirelim. Bir dizimiz olsun:

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

Bu dizinin elemanlarını bir döngü içinde render edelim:

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

Diziye yeni bir eleman ekleyen bir buton yapalım:

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

İlgili metodu hayata geçirelim:

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

Bir buton verilsin. Bir dizi verilsin. Bu dizinin elemanlarını bir ul listesi olarak render edin. Butona her tıklandığında bu listenin sonuna yeni bir maddenin eklenmesini sağlayın.

Задание 2

Bir buton verilsin. Bir dizi verilsin. Bu dizinin elemanlarını bir ul listesi olarak render edin. Butona her tıklandığında listenin ilk maddesinin silinmesini sağlayın.

Задание 3

Bir buton verilsin. Bir dizi verilsin. Bu dizinin elemanlarını bir ul listesi olarak render edin. Butona her tıklandığında listenin son maddesinin silinmesini sağlayın.

Задание 4

Bir buton verilsin. Bir dizi verilsin. Bu dizinin elemanlarını bir ul listesi olarak render edin. Butona her tıklandığında listenin sondan ikinci maddesinin silinmesini sağlayın.

Задание 5

Bir buton verilsin. Bir dizi verilsin. Bu dizinin elemanlarını bir ul listesi olarak render edin. Butona tıklandığında liste maddelerinin sıralanmasını sağlayın.

Задание 6

Bir buton verilsin. Bir dizi verilsin. Bu dizinin elemanlarını bir ul listesi olarak render edin. Butona tıklandığında liste maddelerinin ters sırada dizilmesini sağlayın.

İstisnalar

JavaScript'in kısıtlamaları nedeniyle, Vue dizideki aşağıdaki değişiklikleri algılayamaz: bir elemana indeksle doğrudan atama yapmak: items[anahtar] = yeniDeğer ve dizinin uzunluğunu açıkça değiştirmek, örneğin: items.length = yeniUzunluk.