Vue-ի կոմպոնենտների ռեակտիվ ջնջում
Եկեք սովորենք ռեակտիվ ջնջել
դուստր կոմպոնենտները ցուցակից:
Դրա համար յուրաքանչյուր դուստր
կոմպոնենտում պատրաստենք հատուկ կոճակ:
Այս կոճակը սեղմելիս կարձակվի իրադարձություն,
և ծնող կոմպոնենտում կջնջվի նշված
դուստր կոմպոնենտը ըստ նրա id-ի:
Սկսենք իրականացնել: Ենթադրենք, ծնող կոմպոնենտում կա օբյեկտների հետևյալ զանգվածը.
data() {
return {
users: [
{
id: 1,
name: 'name1',
surn: 'surn1'
},
{
id: 2,
name: 'name2',
surn: 'surn2'
},
{
id: 3,
name: 'name3',
surn: 'surn3'
},
],
}
}
Գրենք ծնող կոմպոնենտում
օգտատիրոջ ջնջման մեթոդ ըստ նրա id-ի.
methods: {
remove(id) {
this.users = this.users.filter((user) => {
return user.id !== id;
})
}
}
Ստեղծենք կոմպոնենտներ ցիկլով, փոխանցելով
նրանց պարամետրով անունը, ազգանունը, id-ն
և ջնջման մեթոդը.
<template>
<User
v-for ="user in users"
:id ="user.id"
:name ="user.name"
:surn ="user.surn"
@remove ="remove"
:key ="user.id"
/>
</template>
Նկարագրենք ներածվող տվյալները props կարգավորման մեջ
և արձակվող իրադարձությունը emits կարգավորման մեջ.
props: {
id: Number,
name: String,
surn: String,
},
emits: ['remove'],
Արտածենք կոմպոնենտի ներկայացման մեջ օգտատիրոջ անունը և ազգանունը.
<template>
{{ name }}
{{ surn }}
</template>
Իսկ այժմ պատրաստենք կոճակ, որի սեղմման դեպքում
կարձակվի ջնջման իրադարձություն:
Այս իրադարձությանը որպես պարամետր
կփոխանցվի կոմպոնենտի id-ն:
Ծնող կոմպոնենտը իրադարձությունը ստանալիս
կջնջի տվյալ օգտատիրոջը օբյեկտների զանգվածից,
և նա ռեակտիվ կանհետանա օգտատերերի ցուցակից:
Այսպիսով, իրականացնենք այս կոճակը.
<template>
{{ name }}
{{ surn }}
<button @click="$emit('remove', id)">
remove
</button>
</template>
Արտածեք ցիկլով Employee կոմպոնենտները:
Յուրաքանչյուր կոմպոնենտում պատրաստեք կոճակ
դրա ջնջման համար: