⊗jsvuPmCmRR 68 of 72 menu

Eliminación reactiva de componentes en Vue

Aprendamos a eliminar reactivamente componentes hijos de una lista. Para hacer esto, creemos un botón especial en cada componente hijo. Al hacer clic en este botón se emitirá un evento y en el componente padre se eliminará el componente hijo especificado por su id.

Procedamos con la implementación. Supongamos que en el componente padre existe el siguiente array de objetos:

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

Escribamos en el componente padre un método para eliminar un usuario por su id:

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

Creemos componentes en un ciclo, pasándoles como parámetros el nombre, apellido, id y el método para eliminar:

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

Definamos los datos entrantes en la opción props y el evento emitido en la opción emits:

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

Mostremos en la plantilla del componente el nombre y apellido del usuario:

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

Y ahora hagamos un botón, al hacer clic en el cual se emitirá un evento para eliminar. Como parámetro de este evento se pasará el id del componente. El componente padre al recibir el evento eliminará este usuario del array de objetos y este desaparecerá reactivamente de la lista de usuarios.

Entonces, implementemos este botón:

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

Muestra en un ciclo los componentes Employee. Haz en cada componente un botón para eliminarlo.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar