Skip to content

Commit

Permalink
Doplnění obsah lekce o stabevních vzorech
Browse files Browse the repository at this point in the history
  • Loading branch information
podlomar committed May 22, 2024
1 parent 27d6fa1 commit 6223de5
Show file tree
Hide file tree
Showing 27 changed files with 89 additions and 639 deletions.
Binary file added daweb/react/stavebni-vzory/assets/alerts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed daweb/react/stavebni-vzory/assets/component-tree.png
Binary file not shown.
Binary file removed daweb/react/stavebni-vzory/assets/data-flow.png
Binary file not shown.
Binary file removed daweb/react/stavebni-vzory/assets/diagram01.png
Binary file not shown.
Binary file removed daweb/react/stavebni-vzory/assets/diagram02.png
Binary file not shown.
Binary file removed daweb/react/stavebni-vzory/assets/diagram03.png
Binary file not shown.
Binary file removed daweb/react/stavebni-vzory/assets/props-state.png
Binary file not shown.
Binary file removed daweb/react/stavebni-vzory/assets/weather.png
Binary file not shown.
39 changes: 39 additions & 0 deletions daweb/react/stavebni-vzory/children-prop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## Prop `children`

Když vytváříme znovupoužielné komponenty, často budeme chtít, aby si programátor mohl sám rozhodnout, co se v komponentě zobrazí. Mohli bychom například umožnit zobrazit uvnitř komponenty `Alert` nějaký složitější obash, než pouze textový řetězec.

Například bychom chtěli mít možnost zobrazit v komponentě `Alert` několik odstavců textu:

```jsx
<Alert
type="warning"
title="Warning!"
>
<p>Something went a tiny bit wrong.</p>
<p>But don't worry, it's not a big deal yet.</p>
</Alert>
```

Naše vlastní komponenty jsme zatím vždy používali jako nepárové značky, do kterých jsme posílali pouze props. Teď však najednou posíláme do komponenty `Alert` několik potomků. Abychom tyto potomky mohli zobrazit, musíme v komponentě `Alert` použít prop `children`.

V Reactu je v každé komponentě k dispozici speciální prop nazvaná `children`, která obsahuje všechny do komponenty vnořené potomky, tedy jakékoli JSX prvky, které se nacházejí uvnitř značky komponenty.

Obsah prop `children` pak můžeme přímo vložit do JSX komponenty na místo, kde se nám to hodí. V našem případě do elementu `.alert__body`.

```jsx
export const Alert = ({ type, title, children }) => {
return (
<div className={`alert alert--${type}`}>
<div className="alert__head">
<i className={`alert__icon fas ${selectFaIcon(type)}`}></i>
<span className="alert__title">{title}</span>
</div>
<div className="alert__body">{children}</div>
</div>
);
};
```

Prop `children` budeme využívat vždy, kdy budeme potřebovat napsat komponentu, která má obsahovat další prvky nebo komponenty, ale my dopředu nevíme, jaké to budou.

Časté použití jsou například jsou znovupoužitelné komponenty jako různá dialogová okna, sidebary, nastylované boxy, ve kterých může být libovolný obsah, nebo obecné komponenty, které například řídí rozložení prvků na stránce.
4 changes: 0 additions & 4 deletions daweb/react/stavebni-vzory/cv-diagramy.md

This file was deleted.

5 changes: 0 additions & 5 deletions daweb/react/stavebni-vzory/cv-vzory.md

This file was deleted.

15 changes: 0 additions & 15 deletions daweb/react/stavebni-vzory/cvlekce/kalorie.md

This file was deleted.

Binary file not shown.
17 changes: 0 additions & 17 deletions daweb/react/stavebni-vzory/cvlekce/platebni-plan/exercise.md

This file was deleted.

Binary file not shown.
11 changes: 0 additions & 11 deletions daweb/react/stavebni-vzory/cvlekce/podcasty/exercise.md

This file was deleted.

22 changes: 0 additions & 22 deletions daweb/react/stavebni-vzory/cvlekce/seznam-filtr.md

This file was deleted.

19 changes: 0 additions & 19 deletions daweb/react/stavebni-vzory/cvlekce/vyber-pocitani.md

This file was deleted.

2 changes: 1 addition & 1 deletion daweb/react/stavebni-vzory/detail-polozky.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Vzor: detail položky

Dalším z velmi častých vzorů je zobrazení detailu nějaké položky. Může se jednat o detail produktu v e-shopu, detail článku na blogu, detail události v kalendáři, ale také třeba o zobrazení rozbalovacího menu, zobrazení jedné ze záložek nebo přechod na jinou stránku pomocí navigace.
V této lekci budeme ještě pokračovat v popisu stavebních vzorů. Podíváme se na další z velmi častých vzorů, a to je zobrazení detailu nějaké položky. Může se jednat o detail produktu v e-shopu, detail článku na blogu, detail události v kalendáři, ale také třeba o zobrazení rozbalovacího menu, zobrazení jedné ze záložek nebo přechod na jinou stránku pomocí navigace.

Tento vzor má dvě základní varianty. Buď v detailu zobrazujeme data, která už máme stažená, nebo si je komponenta zobrazující detail musí stáhnout sama.

Expand Down
Loading

0 comments on commit 6223de5

Please sign in to comment.