⊗jsvuPmCmRR 68 of 72 menu

Reaktiivinen komponenttien poisto Vue:ssa

Opitaan reaktiivisesti poistamaan lapsikomponentteja listasta. Tehdään tätä varten jokaisessa lapsikomponentissa erityinen painike. Kun painiketta painetaan, lähetetään tapahtuma ja vanhempakomponentissa poistetaan määritetty lapsikomponentti sen id:n perusteella.

Ryhdytään toteuttamaan. Olkoon vanhempakomponentissa seuraava objektilista:

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

Kirjoitetaan vanhempakomponenttiin metodi käyttäjän poistamiseksi sen id:n perusteella:

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

Luodaan komponentit silmukassa, välittäen niille parametrina nimen, sukunimen, id:n ja poistometodin:

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

Määritellään saapuvat tiedot props-asetuksessa ja lähetettävä tapahtuma emits-asetuksessa:

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

Näytetään komponentin esityksessä käyttäjän etu- ja sukunimi:

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

Tehdään nyt painike, jota painettaessa lähetetään poistotapahtuma. Tämän tapahtuman parametrina lähetetään komponentin id. Vanhempakomponentti vastaanottaessa tapahtuman poistaa kyseisen käyttäjän objektilistasta ja se reaktiivisesti katoaa käyttäjälistasta.

Toteutetaan tämä painike:

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

Näytä silmukassa Employee-komponentit. Tee kuhunkin komponenttiin painike sen poistamista varten.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää