⊗jsvuPmCmRR 68 of 72 menu

Reaktív komponenstörlés a Vue-ban

Tanuljunk meg reaktívan törölni gyermek komponenseket egy listából. Ehhez készítsünk minden gyermek komponensben egy speciális gombot. Erre a gombra kattintva egy esemény fog kibocsátásra kerülni, és a szülő komponensben a megadott gyermek komponens törlődik a id-ja alapján.

Lássuk a megvalósítást. Tegyük fel, hogy a szülő komponensben adott a következő objektumtömb:

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

Írjunk a szülő komponensben egy metódust a felhasználó id alapján történő törlésére:

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

Hozzuk létre a komponenseket ciklusban, átadva nekik paraméterként a nevet, vezetéknevet, id-t és a törlés metódusát:

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

Definiáljuk a bejövő adatokat a props beállításban és a kibocsátandó eseményt a emits beállításban:

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

Jelenítsük meg a komponens sablonjában a felhasználó nevét és vezetéknevét:

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

Most készítsünk egy gombot, amelyre kattintva egy esemény bocsátódik ki a törléshez. Ennek az eseménynek a paramétereként a komponens id-ja lesz átadva. A szülő komponens az esemény fogadásakor törli ezt a felhasználót az objektumtömbből, és az reaktívan eltűnik a felhasználók listájából.

Valósítsuk meg ezt a gombot:

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

Jelenítsd meg ciklusban a Employee komponenseket. Minden komponensben készíts egy gombot annak törléséhez.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás