Shrnutí
V této lekci jste se naučili, že:
- Komponenta má životní cyklus: vytvoří se (proběhne její
<script setup>), připojí se (její prvky se vloží do stránky), aktualizuje se (po každé změně stavu) a odpojí se (zmizí ze stránky, třeba kvůliv-if, a s ní i její stav). - Funkce životního cyklu v těchto chvílích spustí váš kód:
onMounted(() => { … }),onUpdated()aonUnmounted(). Importují se z"vue"a volají se nahoře v<script setup>. - Data ze souboru se načítají v
onMounted, pomocí funkceasync,fetch()aodpoved.json(). S refem jakonacitanišablona mezitím ukážeNačítám….awaitnikdy nepište nahoru do<script setup>: komponenta pak neukáže nic. odpoved.okjefalse, když server odpověděl chybou, třeba 404 Not Found při překlepu v názvu souboru. Zkontrolujte ho a místo dat ukažte chybovou zprávu.- Co komponenta spustí, to i zastaví: interval spuštěný v
onMountedse zastavuje vonUnmountedpomocíclearInterval(). Jinak běží dál i potom, co komponenta zmizela. - Ref na prvek vám dá prvek šablony:
ref="hledani"v šabloně aconst hledani = useTemplateRef("hledani");ve skriptu.hledani.valueje prvek, jakmile je komponenta připojená, a předtímnull. - Co je uložené v
localStorage, přečtěte už při vytvoření refu, protoželocalStorageodpoví hned, awatchto při každé změně uloží.
V další lekci, Composables, přesunete kód jako načítání nabídky z komponent do samostatných funkcí, které může použít kterákoli komponenta.
Nejdřív si ale vše procvičte na stránce s názory hostů: načte, co hosté napsali, dá kurzor do textového pole pro váš vlastní názor a zapamatuje si, co jste napsali, i když stránku zavřete.
Jak psát:
Pokyny
- 1
V
onMountednačtětenazory.jsondonazory, aby seznam ukázal každý názor jakoJana: Nejlepší mrkvový dort ve městě.Během načítání ukažte místo seznamu<p>Načítám…</p>. - 2
Když se stránka otevře, dejte kurzor do textového pole pro váš názor, pomocí refu na prvek.
- 3
Zapamatujte si rozepsaný text: kdykoli se změní, uložte ho do
localStoragepod klíčemkoncept, a když se aplikace spustí, nechtekonceptzačít s uloženým textem. Už je to text, takže JSON nepotřebuje. Vyzkoušejte to: něco napište a klikněte na Spustit.