⊗jsvuPmLpKA 34 of 72 menu

Vue-ում key ատրիբուտը

Vue-ի կողմից v-for դիրեկտիվով պատկերված տարրերի ցուցակը թարմացնելիս լռելյայն օգտագործվում է «տեղում» թարմացման ստրատեգիա: Եթե զանգվածի կամ օբյեկտի տարրերի հերթականությունը փոխվել է, Vue-ն չի տեղափոխի DOM տարրերը, այլ պարզապես կթարմացնի յուրաքանչյուր տարրը «տեղում», որպեսզի այն ցուցադրի համապատասխան ինդեքսով նոր տվյալները:

Որպեսզի Vue-ին հուշել, թե ինչպես որոշել յուրաքանչյուր տարրի նույնականությունը, և այդպիսով վերաօգտագործել և դասավորել գոյություն ունեցող տարրերը, անհրաժեշտ է յուրաքանչյուր տարրի համար նշել ունիկալ key ատրիբուտ:

Առանց բանալիների Vue-ն օգտագործում է ալգորիթմ, որն նվազագույնի է հասցնում տարրերի տեղափոխությունը և առավելագույնս կփորձի փոփոխել/վերաօգտագործել նույն տիպի տարրերը: Բանալիների օգտագործման դեպքում տարրերը կվերադասավորվեն՝ համապատասխանելով բանալիների հերթականության փոփոխությանը, իսկ այն տարրերը, որոնց բանալիներն այլևս բացակայում են, միշտ կհեռացվեն/կոչնչացվեն:

Խորհուրդ է տրվում միշտ նշել key ատրիբուտը v-for-ի հետ, բացառությամբ այն դեպքերի, երբ DOM-ի կրկնվող բովանդակությունը պարզ է, կամ երբ գիտակցաբար ապավինում եք լռելյայն թարմացման ստրատեգիային՝ արտադրողականությունը բարելավելու համար:

Որպես կանոն, բանալիների ավելացման հարցը ծագում է օբյեկտների զանգվածի վրա կրկնություն կատարելիս: Այս դեպքում օբյեկտի բանալիներից մեկը ունիկալ դաշտ է, օրինակ՝ id:

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

Եկեք կրկնենք տրված զանգվածը ցիկլով, նշելով համապատասխան բանալիները:

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

Կրկնեք ցիկլով հետևյալ զանգվածը և արտադրանքի անվանումները ցուցադրեք որպես ցուցակ ul-ի մեջ:

data() { return { products: [ { id: 1, name: 'product1', }, { id: 2, name: 'product2', }, { id: 3, name: 'product3', }, ] } }
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել