Kino jako aplikace v Reactu
Vítejte u posledního projektu cesty Tvorba webu! Kino Hvězda se vrací naposledy a vy ho postavíte znovu jako aplikaci v Reactu. Návštěvníci uvidí stejné stránky: filmy, program, místa i své vstupenky. Uvnitř se ale web bude skládat z komponent, které stránku vykreslí z dat a ze stavu. Když si návštěvník vybere den nebo místo, nebudete stránku měnit sami, jako to dělal script.js. Změníte stav a React znovu vykreslí, co se změnilo.
Soubory. Kino má stejné soubory jako aplikace v kurzu Reactu:
index.htmlje jediná stránka aplikace:<div id="root">a skript, který načtemain.jsx. Vykreslí se do ní úvodní stránka i program.main.jsxvykreslí<App />do#roota importujestyle.css, jako v kurzu Reactu.style.cssjsou styly z projektu Kino v Tailwindu, beze změny: motiv s barvaminocazlataa písmem nadpisů, buňky tabulek a třídyden,aktivni,misto,obsazeneavybrane. Když jemain.jsximportuje, Start Coder z nich udělá CSS, jako dřív.App.jsxobsahuje úvodní stránku, už převedenou do JSX, abyste ji nemuseli přepisovat: záhlaví, tři sekce a zápatí.program.jsonobsahuje program, jako dřív.
Tailwind v JSX. Podívejte se do App.jsx: třídy jsou stejné jako na staré stránce, jen z class se stalo className, jako v lekci JSX. Tailwind hledá názvy tříd ve všech vašich souborech, i v souborech .jsx, takže fungují stejně jako dřív. Změnily se ještě dvě věci. Z odkazů v záhlaví a z Co hrajeme se stala tlačítka, s cursor-pointer jako tlačítko Rezervovat, a zatím nic nedělají: aplikace s jedinou stránkou nemá kam jinam odkazovat. Oživíte je v dalším cvičení. A v tabulce cen jsou řádky v <tbody>. V HTML ho prohlížeč doplní sám, ale React sestaví tabulku přesně podle JSX a bez <tbody> by v konzoli varoval.
Co je mimo React. React vykresluje jen to, co je uvnitř #root. Prvky head a body jsou v index.html. To je obyčejné HTML, takže se v něm třída píše class, ne className. Prvek body potřebuje pozadí a barvu textu starých stránek a head dva řádky ze starého index.html: viewport, bez kterého mobily stránku zmenší, a popis pro vyhledávače:
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Malé kino s velkými filmy, v Jilmové ulici od roku 1932. Filmy na tento týden, program a ceny vstupenek.">Záhlaví jako komponenta. Pak začnete stránku dělit na komponenty, jako v lekci Komponenty. Záhlaví je na řadě první, protože brzy dostane vlastní práci: přepínání stránek.
(V zápatí je Autorka webu: Anna, jméno z našich ukázkových souborů. Jestli chcete, napište tam zase sebe.)
Jak psát:
Pokyny
- 1
V
index.htmlpřidejte pod<meta charset="utf-8">oba řádkymetaz ukázky výše a dejte prvkubodyatributemclasstřídybg-amber-50 text-stone-800. Stránka dostane krémové pozadí. - 2
Přesuňte záhlaví do vlastní komponenty: v souboru
Hlavicka.jsxnapište komponentuHlavicka, která vrátí celé<header>zApp.jsx, a exportujte ji pomocíexport default. VApp.jsxji importujte a dejte<Hlavicka />tam, kde bylo záhlaví. Stránka vypadá stejně jako předtím.