Vestavěné speciální atributy
key
Speciální atribut key se používá především jako nápověda pro virtuální DOM algoritmus Vue pro identifikaci elementů (VNodes) při porovnávání nového seznamu s původním seznamem.
Očekává:
number | string | symbolPodrobnosti
Bez
keyatributů Vue používá algoritmus, který minimalizuje pohyb elementů a snaží se co nejvíce upravit / znovupoužít elementy stejného typu na stejném místě. S použitímkeyse elementy přeuspořádávají na základě změny pořadí klíčů a elementy s klíči, které již nejsou přítomny, budou vždy odstraněny / zničeny.Potomci stejného společného rodiče musí mít unikátní klíče. Duplicitní atributy
keyzpůsobí chyby při vykreslování.Nejběžnější použití je v kombinaci s
v-for:template<ul> <li v-for="item in items" :key="item.id">...</li> </ul>Mohou být také použity k vynucenému nahrazení elementu/komponenty místo jejího znovupoužití. To může být užitečné, když chcete:
- Správně spustit lifecycle hooky komponenty
- Spustit přechody (transitions)
Například:
template<transition> <span :key="text">{{ text }}</span> </transition>Když se změní
text,<span>bude vždy nahrazen místo pouhé úpravy, takže se přechod spustí.Viz také: Průvodce – Vykreslování seznamu – Udržování stavu pomocí
key
ref
Určuje Template ref.
Očekává:
string | FunctionPodrobnosti
refse používá k zaregistrování reference na element nebo komponentu potomka.V Options API bude reference zaregistrována v objektu
this.$refskomponenty:template<!-- uloženo jako this.$refs.p --> <p ref="p">ahoj</p>V Composition API bude reference uložena jako
refse shodným názvem:vue<script setup> import { useTemplateRef } from 'vue' const pRef = useTemplateRef('p') </script> <template> <p ref="p">ahoj</p> </template>Pokud je použito na obyčejném DOM elementu, reference bude odkazovat na tento element; pokud je použito na komponentě potomka, reference bude odkazovat na příslušnou instanci komponenty.
Alternativně může
refpřijmout hodnotu funkce, která poskytuje plnou kontrolu, kam referenci uložit:template<ChildComponent :ref="(el) => child = el" />Důležitá poznámka ohledně času registrace ref: protože samotné refs jsou vytvořeny jako výsledek vykreslovací funkce, musíte počkat, až je komponenta připojena (mounted), než k nim lze přistoupit.
this.$refstaké není reaktivní, proto byste se neměli pokoušet tento objekt použít v šablonách pro data-binding.Viz také:
is
Používá se pro binding dynamických komponent.
Očekává:
string | KomponentaPoužití na nativních elementech
- Podporováno až od verze 3.1+
Když je atribut
ispoužit na nativním HTML elementu, bude interpretován jako custom vestavěný element, což je nativní funkce webové platformy.Existuje však případ použití, kdy můžete potřebovat, aby Vue nahradilo nativní element Vue komponentou, jak je vysvětleno v upozornění na omezení při parsování in-DOM šablon. Můžete atributu
ispřidat předponuvue:, aby Vue vykreslilo element jako Vue komponentu:template<table> <tr is="vue:my-row-component"></tr> </table>Viz také: