Při brouzdání internetem by se jistě leckomu mohla hodit aplikace, která bude spravovat různé internetové odkazy, abychom je nemuseli mít v tisíci záložkách v prohlížeči, které se pak bojíme zavřít. Základ takové aplikací si vytvoříme v této úloze.
Postupujte dle následujících kroků. Naši aplikaci nazveme originálně Správce odkazů.
-
Nejdříve vytvořte lokální API server pro náš projekt. Založte si někde na disku složku
odkazy-api
a otevřete ji ve VS Code. -
V této složce vytvořte složku
api
a v ní souborlinks.json
a vložte do něj pole několika odkazů, abychom měli do začátku nějaká data. Rozmyslete si, jak by měl objekt jednoho odkazu vypadat. Určitě budeme chtít evidovat- URL na kterou odkaz míří, např.
https://www.seznam.cz
, - název odkazu, např.
Seznam
, - popis odkazu, např.
Nejlepší český vyhledávač
. - typ odkazu, např.
web
,youtube video
apod.
Sami si rozmyslete, jak se budou jednotlivé vlastnosti jmenovat a jaké hodnoty budou mít. Vytvořte si alespoň dva objekty s různými hodnotami.
- URL na kterou odkaz míří, např.
-
Nezapomeňte, že každá položka musí být číselné
id
. -
Rozeběhněte si lokální server pomocí
npx apidroid
. Otevřete si v prohlížeči stránku http://localhost:4000/api/links a ověřte, že se vám zobrazují data z vašeho souboru. -
Založte si nový Vite/JSX projekt pomocí
npm init kodim-app@latest spravce-odkazu jsx
. Otevřete si složku projektu v novém okně VS Code. -
Na začátku souboru
index.jsx
proveďtefetch
, který načte data z vašeho lokálního API serveru. Výsledek uložte do proměnnélinks
. Pomocíconsole.log
ověřte, že se vám data načetla. -
Zobrazte odkazy na stránce pomocí
map
. -
Vytvořte komponentu
StoredLink
, která bude zobrazovat jeden odkaz. Sami si rozmyslete, jaké bude mít komponentaprops
a lehce ji nastylujte, aby stránka trošku vypadala. -
Zapojte komponentu
StoredLink
do stránky.
## E-shop
Vytvořte aplikaci, která bude simulovat nějaký malý e-shop. E-shop bude mít dvě stránky, na jedné bude seznam produktů a na druhé detail jednoho produktu. Na stránce s produkty bude možné vybrat jeden produkt a přejít na jeho detail.
Toto cvičení je zadáno schválně vágněji a obecněji než jsme zvyklí, abyste měli příležitost se sami zamyslet nad strukturou aplikace.
- Rozmyslete si, jaké produkty váš e-shop bude nabízet.
- Založte lokální API server. Vytvořte v něm jednu kolekci dat s vašimi produkty. Sami si rozmyslete, jaké vlastnosti budou produkty mít. Nebojte se do dat vložit např. odkazy na obrázek produktu, který můžete sehnat někde na internetu. Server rozeběhněte pomocí
npx apidroid
a ověřte, že se vám data zobrazují v prohlížeči. - Založte si novou Vite/JSX aplikaci. Na úvodní stránce vytvořte hlavní komponentu
HomePage
, která bude zobrazovat seznam produktů. Vytvořte komponentuProduct
, která bude zobrazovat jeden produkt. Zapojte komponentu do stránky. - Každý produkt nechť zobrazuje tlačítko, které vás přesune na stránku
detail.html
. Stránce předejte search parametr s id produktu. - Vytvořte stránku
detail.html
s vlastním JavaScriptemdetail.jsx
. Vytvořte hlavní komponentuProductPage
, která zatím bude zobrazovat například pouze nadpis Detail produktu. Zapojte komponentu do stránky. - Na začátku souboru načtěte data produktu z API serveru pomocí
fetch
. K tomu bude potřeba si přečíst id produktu ze search parametru. Výsledek uložte do proměnnéproduct
. - V komponentě
ProductPage
zobrazte detail produktu podle dat ze serveru. - Aplikaci lehce nastylujte, aby vypadala jako e-shop.
- Vyzkoušejte, že vaše aplikace funguje.