⊗jsvuPmCmRR 68 of 72 menu

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 კომპონენტები. გააკეთეთ თითოეულ კომპონენტში ღილაკი მისი წაშლისთვის.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა