⊗jsvuPmCmRE 69 of 72 menu

Reaktivno uređivanje podataka komponente u Vue

Hajde sada da implementiramo uređivanje podataka naših podređenih komponenti. Za početak, u roditeljskoj komponenti kreirajmo metodu za promenu korisnika prema njegovom id:

methods: { change(id, name, surn) { this.users = this.users.map((user) => { if (user.id === id) { user.name = name; user.surn = surn; } return user; }); } }

Kreirajmo komponente u petlji, prosledivši im kao parametar ime, prezime, id i metodu za promenu:

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

Definišimo emitovani događaj u podešavanju emits podređene komponente:

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

Sada u podređenoj komponenti napravimo svojstvo koje će postavljati mod komponente, prikaz ili uređivanje:

data() { return { isEdit: false, } }

Takođe napravimo svojstva za podršku radu input polja za uređivanje:

data() { return { isEdit: false, newName: '', newSurn: '', } }

Učinimo da početne vrednosti ovih svojstava budu preuzete iz props:

data() { return { isEdit: false, newName: this.name, newSurn: this.surn, } }

Kreirajmo metodu koja će pokretati mod uređivanja:

methods: { edit() { this.isEdit = true; } }

Kreirajmo metodu koja će čuvati uređene podatke, istovremeno isključujući mod uređivanja:

methods: { save() { this.isEdit = false; this.$emit('change', this.id, this.newName, this.newSurn); } }

Kreirajmo prikaz podređene komponente:

<template> <template v-if="!isEdit"> {{ name }} {{ surn }} <button @click="edit"> edit </button> </template> <template v-else> <input v-model="newName"> <input v-model="newSurn"> <button @click="save"> save </button> </template> </template>

Implementirajte uređivanje podataka komponente Employee.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij