⊗jsvuPmCmRR 68 of 72 menu

Rimozione reattiva dei componenti in Vue

Impariamo a rimuovere in modo reattivo i componenti figli da un elenco. Per fare ciò, creiamo un pulsante speciale in ogni componente figlio. Alla pressione di questo pulsante viene emesso un evento e nel componente genitore verrà rimosso il componente figlio specificato tramite il suo id.

Iniziamo con l'implementazione. Supponiamo che nel componente genitore ci sia il seguente array di oggetti:

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

Scriviamo nel componente genitore un metodo per rimuovere l'utente tramite il suo id:

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

Creiamo i componenti in un ciclo, passando loro come parametri nome, cognome, id e il metodo per la rimozione:

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

Definiamo i dati in entrata nell'opzione props e l'evento emesso nell'opzione emits:

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

Visualizziamo nel template del componente nome e cognome dell'utente:

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

Ora creiamo un pulsante, alla cui pressione viene emesso un evento per la rimozione. Come parametro di questo evento viene passato il id del componente. Il componente genitore, alla ricezione dell'evento, rimuoverà questo utente dall'array di oggetti e esso scomparirà reattivamente dall'elenco degli utenti.

Quindi, implementiamo questo pulsante:

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

Visualizza in un ciclo i componenti Employee. Crea in ogni componente un pulsante per la sua rimozione.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta