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">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 = նորԵրկարություն։