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 компоненттериң көрсөтөлү.
Ар бир компонентте аны өчүрүү үчүн
баскыч жасаңыз.