⊗jsvuPmCmRR 68 of 72 menu

Реактивно брисање компоненти у Vue

Хајде да научимо реактивно да бришемо детет компоненте са листе. Урадимо за то у свакој детет компоненти специјално дугме. Притиском на ово дугме ће се емитовати догађај и у родитељској компоненти ће се брисати задата детет компонента по њеном id.

Приступимо реализацији. Нека у родитељској компоненти постоји следећи низ објеката:

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

Напишимо у родитељској компоненти метод брисања корисника по његовом id:

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

Креирајмо компоненте у циклусу, проследивши им параметром име, презиме, id и метод за брисање:

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

Опишимо улазне податке у подешавању props и догађај који се емитује у подешавању emits:

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

Прикажимо у презентацији компоненте име и презиме корисника:

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

А сада направимо дугме, притиском на које ће се емитовати догађај за брисање. Параметром овог догађаја ће се прослеђивати id компоненте. Родитељска компонента при пријему догађаја ће обрисати датог корисника из низа објеката и он ће реактивно нестати са листе корисника.

Дакле, реализујмо ово дугме:

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

Прикажите у циклусу компоненте Employee. Направите у свакој компоненти дугме за њено брисање.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј