====== Angular ====== **Angular** je postaven na jazyce **TypeScript** a je navržen pro vývoj rozsáhlých podnikových (enterprise) aplikací. Poskytuje vývojářům pevně danou strukturu a sadu vestavěných nástrojů pro vše od navigace až po komunikaci se serverem. ===== 1. Klíčové koncepty ===== ==== TypeScript jako základ ==== Angular vyžaduje použití TypeScriptu (nadstavba JavaScriptu s datovými typy). To umožňuje odhalit chyby v kódu už během psaní a usnadňuje práci ve velkých týmech, kde je jasně definováno, jaká data kudy proudí. ==== Obousměrná vazba dat (Two-way Data Binding) ==== Toto je jedna z nejznámějších funkcí Angularu. Pokud změníte data v kódu, okamžitě se změní v HTML. A naopak – pokud uživatel napíše něco do políčka, data v kódu se ihned aktualizují. ==== Dependency Injection (Injekce závislostí) ==== Angular má propracovaný systém pro sdílení částí kódu (služeb). Pokud jedna část aplikace potřebuje data z databáze, Angular jí automaticky "přihraje" správnou službu, která to umí zařídit. To vede k velmi čistému a testovatelnému kódu. ==== Modulární systém (NgModules) ==== Aplikace se dělí na bloky (moduly), které lze načítat postupně (tzv. //Lazy Loading//). To zajišťuje, že se uživateli nestahuje celý obří systém najednou, ale jen ty části, které zrovna potřebuje. ===== 2. Srovnání: Angular vs. React ===== ^ Vlastnost ^ Angular ^ React ^ | **Typ** | Kompletní framework | Knihovna pro UI | | **Jazyk** | TypeScript (povinný) | JavaScript / TypeScript | | **Učení** | Náročné (strmá křivka) | Snazší (postupný růst) | | **Ekosystém** | Vše v ceně (Routing, Forms) | Nutno doinstalovat knihovny | | **Výrobce** | Google | Meta (Facebook) | ===== 3. Historické okénko: AngularJS vs. Angular ===== Je důležité rozlišovat mezi těmito dvěma verzemi: * **AngularJS (v1.x):** Původní verze z roku 2010. Dnes je zastaralá a její podpora skončila. * **Angular (v2 a novější):** Úplný přepis z roku 2016. Tyto verze nejsou zpětně kompatibilní s AngularJS. Dnešní verze (např. Angular 17, 18+) jsou extrémně rychlé a moderní. ===== 4. Ukázka kódu (Komponenta v TypeScriptu) ===== @Component({ selector: 'app-pozdrav', template: '

Ahoj, {{ jmeno }}!

' }) export class PozdravComponent { jmeno: string = 'Vývojáři'; }
===== 5. Kdy zvolit Angular? ===== * **Enterprise sféra:** Ideální pro bankovní systémy, vládní portály a rozsáhlé firemní nástroje. * **Velké týmy:** Pevná pravidla frameworku zaručují, že kód bude vypadat stejně, i když na něm pracují desítky lidí. * **Dlouhodobá údržba:** Díky TypeScriptu a podpoře Googlu je Angular sázkou na jistotu pro projekty, které mají běžet deset a více let. > **Zajímavost:** Angular používá tzv. **AOT (Ahead-of-Time) kompilaci**. To znamená, že se kód přeloží do stroji srozumitelné podoby už při sestavování aplikace, nikoliv až v prohlížeči uživatele, což výrazně zrychluje start webu. [[it_encyklopedie:it_architektura_rozcestnik|Zpět na Architekturu]]