⊗jsvuPmCmRR 68 of 72 menu

Reactief verwijderen van componenten in Vue

Laten we leren hoe we kindcomponenten reactief uit een lijst kunnen verwijderen. Laten we hiervoor in elke kindcomponent een speciale knop maken. Wanneer op deze knop wordt geklikt, wordt een gebeurtenis uitgezonden en in de bovenliggende component wordt de opgegeven kindcomponent verwijderd op basis van zijn id.

Laten we beginnen met de implementatie. Stel dat in de bovenliggende component de volgende array met objecten staat:

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

Laten we in de bovenliggende component een methode schrijven om een gebruiker te verwijderen op basis van zijn id:

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

Laten we componenten in een loop maken, waarbij we hen de naam, achternaam, id en de methode voor verwijdering doorgeven:

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

Laten we de inkomende gegevens in de optie props en de uitgezonden gebeurtenis in de optie emits specificeren:

props: { id: Number, name: String, surn: String, }, emits: ['remove'],

Laten we in de weergave van de component de naam en achternaam van de gebruiker tonen:

<template> {{ name }} {{ surn }} </template>

En laten we nu een knop maken, waar bij het klikken erop een gebeurtenis wordt uitgezonden voor verwijdering. Als parameter van deze gebeurtenis wordt de id van de component doorgegeven. De bovenliggende component zal bij ontvangst van de gebeurtenis deze gebruiker uit de array met objecten verwijderen en hij zal reactief verdwijnen uit de lijst met gebruikers.

Laten we deze knop implementeren:

<template> {{ name }} {{ surn }} <button @click="$emit('remove', id)"> remove </button> </template>

Toon de Employee componenten in een loop. Maak in elke component een knop om deze te verwijderen.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren