⊗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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць