Vue-ի կոմպոնենտների ռեակտիվ ջնջում

Եկեք սովորենք ռեակտիվ ջնջել դուստր կոմպոնենտները ցուցակից: Դրա համար յուրաքանչյուր դուստր կոմպոնենտում պատրաստենք հատուկ կոճակ: Այս կոճակը սեղմելիս կարձակվի իրադարձություն, և ծնող կոմպոնենտում կջնջվի նշված դուստր կոմպոնենտը ըստ նրա id-ի:

Սկսենք իրականացնել: Ենթադրենք, ծնող կոմպոնենտում կա օբյեկտների հետևյալ զանգվածը.

App.vuedata() {
  return {
    users: [
      {
        id: 1,
        name: 'name1',
        surn: 'surn1'
      },
      {
        id: 2,
        name: 'name2',
        surn: 'surn2'
      },
      {
        id: 3,
        name: 'name3',
        surn: 'surn3'
      },
    ],
  }
}

Գրենք ծնող կոմպոնենտում օգտատիրոջ ջնջման մեթոդ ըստ նրա id-ի.

App.vuemethods: {
  remove(id) {
    this.users = this.users.filter((user) => {
      return user.id !== id;
    })
  }
}

Ստեղծենք կոմպոնենտներ ցիկլով, փոխանցելով նրանց պարամետրով անունը, ազգանունը, id-ն և ջնջման մեթոդը.

App.vue<template>
  <User
    v-for   ="user in users"
    
    :id     ="user.id"
    :name   ="user.name"
    :surn   ="user.surn"
    @remove ="remove"
    :key    ="user.id"
  />
</template>

Նկարագրենք ներածվող տվյալները props կարգավորման մեջ և արձակվող իրադարձությունը emits կարգավորման մեջ.

components/User.vueprops: {
  id:     Number,
  name:   String,
  surn:   String,
},
emits: ['remove'],

Արտածենք կոմպոնենտի ներկայացման մեջ օգտատիրոջ անունը և ազգանունը.

components/User.vue<template>
  {{ name }}
  {{ surn }}
</template>

Իսկ այժմ պատրաստենք կոճակ, որի սեղմման դեպքում կարձակվի ջնջման իրադարձություն: Այս իրադարձությանը որպես պարամետր կփոխանցվի կոմպոնենտի id-ն: Ծնող կոմպոնենտը իրադարձությունը ստանալիս կջնջի տվյալ օգտատիրոջը օբյեկտների զանգվածից, և նա ռեակտիվ կանհետանա օգտատերերի ցուցակից:

Այսպիսով, իրականացնենք այս կոճակը.

components/User.vue<template>
  {{ name }}
  {{ surn }}
  
  <button @click="$emit('remove', id)">
    remove
  </button>
</template>
Задание 1

Արտածեք ցիկլով Employee կոմպոնենտները: Յուրաքանչյուր կոմպոնենտում պատրաստեք կոճակ դրա ջնջման համար: