Shrnutí
V této lekci jste se naučili, že:
- Stránka se dělí na komponenty, každou ve vlastním souboru
.vues vlastní šablonou,<script setup>a<style scoped>, který platí jen pro prvky dané komponenty.App.vueje ta hlavní. - Komponenta, která používá jinou, si ji importuje ve svém
<script setup>,import PolozkaMenu from "./PolozkaMenu.vue";(přípona.vueje povinná), a vloží ji do šablony,<PolozkaMenu />, tolikrát, kolikrát potřebuje. - Každý soubor je modul a co je v něm, existuje jen tam, pokud to soubor neexportuje.
export defaultexportuje hlavní hodnotu souboru, která se importuje bez závorek, pod jménem, které si vyberete.export constexportuje hodnotu pod jejím jménem a ta se importuje ve složených závorkách:import { nazevKavarny } from "./kavarna.js";.<script setup>svou komponentu exportuje sám a vlastní exporty mít nemůže. - Komponenty se pojmenovávají v PascalCase, stejně v souboru, v importu i v tagu. Jinak napsaný tag nebo chybějící import dá v konzoli varování
[Vue warn]: Failed to resolve component. - Rodič komponentě předává data v props, které komponenta deklaruje pomocí
defineProps:cena: { type: Number, required: true }, nebo sdefault. Bez dvojtečky je props text, s dvojtečkou JavaScript::cena="55",:polozka="polozka". - Props jsou jen ke čtení. Co patří jen komponentě, je její vlastní stav,
ref, a každá kopie komponenty má svůj. v-forfunguje i na komponentách, s:key, a celý objekt může být jedna props.
V další lekci, Události komponent, uvidíte, jak komponenta dá rodiči vědět, že se něco stalo, třeba že si zákazník objednal položku, aby rodič mohl změnit svá data.
Nejdřív si ale vše procvičte na recenzích kavárny. Recenze.vue má jen svůj styl a zbytek komponenty napíšete sami.
Jak psát:
Pokyny
- 1
V
Recenze.vuenapište komponentu se dvěma povinnými props:autor, což je text, ahvezdy, což je číslo. Ukáže<li class="recenze">s autorem v<strong>a za ním tolik★, kolik má recenze hvězd, v<span class="hvezdy">(v-forumí projít i číslo). VApp.vuekomponentu importujte a ukažte jednuRecenzepro každou recenzi v seznamu. - 2
Přidejte nepovinnou props
text, což je text s výchozí hodnotou"Bez komentáře.". Recenze ji ukáže v<p>pod autorem. Evina recenze text nemá, takže u ní bude Bez komentáře.