⊗jsvuPmLpKA 34 of 72 menu

Atributul key în Vue

La actualizarea unei liste de elemente în Vue, redată prin directiva v-for, în mod implicit este utilizată o strategie de actualizare "pe loc". Dacă ordinea elementelor tabloului sau a obiectului se schimbă, Vue nu va muta elementele DOM, ci pur și simplu va actualiza fiecare element "pe loc", pentru a afișa noile date la indexul corespunzător.

Pentru a-i sugera lui Vue cum să identifice identitatea fiecărui element și, astfel, să reutilizeze și să ordoneze elementele existente, este necesar să specificați un atribut unic key pentru fiecare element.

Fără chei, Vue utilizează un algoritm care minimizează mutarea elementelor și se va strădui să modifice/reutilizeze elementele aceluiași tip cât mai mult posibil. Cu utilizarea cheilor, elementele vor fi reordonate în conformitate cu modificarea ordinii cheilor, iar elementele ale căror chei nu mai sunt prezente vor fi întotdeauna eliminate/distruse.

Este recomandat să specificați întotdeauna atributul key cu v-for, cu excepția cazurilor în care conținutul iterat DOM este simplu, sau când vă bazați în mod conștient pe strategia de actualizare implicită pentru a îmbunătăți performanța.

În general, problema adăugării cheilor apare la iterarea unui tablou de obiecte. În acest caz, una dintre cheile obiectului este un câmp unic, de exemplu, id:

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

Să iterăm tabloul dat cu un buclă, specificând cheile corespunzătoare:

<template> <p v-for="user in users" :key="user.id"> {{ user.name }} {{ user.surn }} </p> </template>

Iterați următorul tablou cu o buclă și afișați numele produselor sub formă de listă ul:

data() { return { products: [ { id: 1, name: 'product1', }, { id: 2, name: 'product2', }, { id: 3, name: 'product3', }, ] } }
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge