Vue-ში მასივების რეაქტიულობა

რეაქტიულობა მუშაობს მაშინაც კი, როდესაც ხდება ცვლილებები მასივებში, რომლებიც გამოტანილია v-for-ის მეშვეობით. მაგალითისთვის, მოდით გავაკეთოთ ისე, რომ ღილაკზე დაჭერისას მასივს რეაქტიულად დაემატოს ახალი ელემენტი და ცვლილებები მყისიერად აისახოს ეკრანზეც.

მოდით, რეალიზაცია გავუკეთოთ აღწერილს. დავუშვათ, გვაქვს მასივი:

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

გამოვიტანოთ ამ მასივის ელემენტები ციკლში:

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

გავაკეთოთ ღილაკი, რომლის დაჭერისას მასივს დაემატება ახალი ელემენტი:

App.vue<template>
  <p v-for="elem in arr">
    {{ elem }}
  </p>
  <button @click="add">დამატება</button>
</template>

რეალიზაცია გავუკეთოთ შესაბამის მეთოდს:

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

მოცემულია ღილაკი. მოცემულია მასივი. გამოიტანეთ ელემენტები ამ მასივის სიის ul სახით. გახადეთ ისე, რომ ღილაკზე დაჭერისას ამ სიის ბოლოს დაემატოს ახალი პუნქტი.

Задание 2

მოცემულია ღილაკი. მოცემულია მასივი. გამოიტანეთ ელემენტები ამ მასივის სიის ul სახით. გახადეთ ისე, რომ ყოველ ჯერზე, ღილაკზე დაჭერისას სიის პირველი პუნქტი წაიშალოს.

Задание 3

მოცემულია ღილაკი. მოცემულია მასივი. გამოიტანეთ ელემენტები ამ მასივის სიის ul სახით. გახადეთ ისე, რომ ყოველ ჯერზე, ღილაკზე დაჭერისას სიის ბოლო პუნქტი წაიშალოს.

Задание 4

მოცემულია ღილაკი. მოცემულია მასივი. გამოიტანეთ ელემენტები ამ მასივის სიის ul სახით. გახადეთ ისე, რომ ყოველ ჯერზე, ღილაკზე დაჭერისას სიის ბოლოდან მეორე პუნქტი წაიშალოს.

Задание 5

მოცემულია ღილაკი. მოცემულია მასივი. გამოიტანეთ ელემენტები ამ მასივის სიის ul სახით. გახადეთ ისე, რომ ღილაკზე დაჭერისას სიის პუნქტები დალაგდეს.

Задание 6

მოცემულია ღილაკი. მოცემულია მასივი. გამოიტანეთ ელემენტები ამ მასივის სიის ul სახით. გახადეთ ისე, რომ ღილაკზე დაჭერისას სიის პუნქტები უკუღმა დალაგდეს.

გამონაკლისები

JavaScript-ის შეზღუდვების გამო, Vue-ს არ შეუძლია შენიშნოს მასივში შემდეგი ცვლილებები: ელემენტის პირდაპირ მინიჭება ინდექსით: items[გასაღები] = ახალი_მნიშვნელობა და მასივის სიგრძის ცვლილება, მაგალითად: items.length = ახალი_სიგრძე.