Tato Äást popisuje sadu modernÃch standardů pro âwebové komponentyâ.
V souÄasnosti jsou tyto standardy ve fázi vývoje. NÄkteré vlastnosti jsou Å¡iroce podporovány a integrovány do modernÃho HTML/DOM standardu, jiné jsou zatÃm ve fázi návrhu. PÅÃklady si můžete vyzkouÅ¡et v kterémkoli prohlÞeÄi, nejaktualizovanÄjšà co do tÄchto prvků je pravdÄpodobnÄ Google Chrome. Hádáte správnÄ, je to tÃm, že za mnoha souvisejÃcÃmi specifikacemi stojà lidé z Googlu.
Co majà spoleÄnéhoâ¦
Celá myÅ¡lenka komponent nenà nic nového. PoužÃvá se v mnoha frameworcÃch i jinde.
Než se pustÃme do implementaÄnÃch podrobnostÃ, podÃvejme se na tento ohromný úspÄch lidstva:
To je Mezinárodnà vesmÃrná stanice (International Space Station, ISS).
A takto je vytvoÅena uvnitÅ (pÅibližnÄ):
Mezinárodnà vesmÃrná stanice:
- Skládá se z mnoha komponent.
- Každá komponenta obsahuje uvnitÅ množstvà dalÅ¡Ãch menÅ¡Ãch detailů.
- Tyto komponenty jsou velmi složité, mnohem složitÄjšà než vÄtÅ¡ina webových sÃdel.
- Komponenty jsou vyvÃjeny mezinárodnÄ, pracujà na nich týmy z různých zemà hovoÅÃcà různými jazyky.
â¦A celá ta vÄc létá a udržuje lidi ve vesmÃru naživu!
Jak se taková složitá zaÅÃzenà vyrábÄjÃ?
Které principy bychom si odtud mohli vypůjÄit, abychom pÅi naÅ¡em vývoji dosáhli stejné úrovnÄ spolehlivosti a rozÅ¡iÅitelnosti? Nebo se jà aspoÅ pÅiblÞili?
Komponentová architektura
DobÅe známé pravidlo pro vývoj složitého softwaru znÃ: nevytváÅejte složitý software.
Pokud se nÄco stane složitým, rozdÄlte to na jednoduššà Äásti a spojte je tÃm nejzÅejmÄjÅ¡Ãm způsobem.
Dobrý architekt je takový, který dokáže uÄinit složité vÄci jednoduchými.
Můžeme rozdÄlit uživatelské rozhranà na vizuálnà komponenty: každá z nich má na stránce své mÃsto, dokáže âsplnitâ dobÅe popsaný úkol a je oddÄlená od ostatnÃch.
PodÃvejme se na webovou stránku, napÅÃklad Twitter (dnes X).
Je pÅirozenÄ rozdÄlena na komponenty:
- Hlavnà navigace.
- Informace o uživateli.
- Návrhy sledovánÃ.
- OdesÃlacà formuláÅ.
- (a také 6, 7) â zprávy.
Komponenty mohou obsahovat vnitÅnà komponenty, napÅ. zprávy mohou být souÄástà komponenty vyššà úrovnÄ âseznam zprávâ. Obrázek uživatele, na který lze kliknout, může být komponenta a tak dále.
Jak rozhodneme, co je komponenta? To je otázka intuice, zkuÅ¡enostà a zdravého rozumu. Obvykle je to oddÄlená vizuálnà entita, kterou můžeme popsat podle toho, co dÄlá a jak interaguje se stránkou. V uvedeném pÅÃpadÄ stránka obsahuje bloky, každý z nich hraje svou vlastnà roli, je tedy logické udÄlat z nich komponenty.
Komponenta má:
- Svou vlastnà tÅÃdu v JavaScriptu.
- Strukturu DOMu, kterou spravuje výhradnÄ jejà tÅÃda a vnÄjšà kód k nà nepÅistupuje (princip âzapouzdÅenÃâ).
- CSS styly, aplikované na komponentu.
- API: události, tÅÃdnà metody atd., k interakci s ostatnÃmi komponentami.
Opakujeme, že celý âkomponentovýâ pÅÃstup nenà nic zvláštnÃho.
Pro vytváÅenà komponent existuje Åada frameworků a vývojových metodik, každá má své vlastnà speciality. K vytváÅenà âkomponentového dojmuâ se zpravidla použÃvajà speciálnà CSS tÅÃdy a konvence â rozsah platnosti CSS a zapouzdÅenà DOMu.
âWebové komponentyâ k tomu poskytujà zabudované prohlÞeÄové schopnosti, takže je už nebudeme muset emulovat.
- Vlastnà elementy â k definici vlastnÃch HTML elementů.
- StÃnový DOM â k vytvoÅenà vnitÅnÃho DOMu komponenty, ukrytého pÅed ostatnÃmi.
- Rozsah platnosti CSS â k deklaraci stylů, které se aplikujà pouze uvnitÅ stÃnového DOMu komponenty.
- PÅesmÄrovánà událostà a dalšà ménÄ důležité záležitosti, aby bylo možné vlastnà komponenty lépe vyvÃjet.
V pÅÃÅ¡tà kapitole podrobnÄ probereme âvlastnà elementyâ â základnà a hojnÄ podporovaný prvek webových komponent, který je dobrý sám o sobÄ.
KomentáÅe
<code>, pro nÄkolik Åádků je obalte znaÄkou<pre>, pro vÃce než 10 Åádků vložte odkaz na pÃskoviÅ¡tÄ (plnkr, jsbin, codepenâ¦)